on master help sign in
Add code (in benchmarks) to check fusion of parser ops
a71f3b7Harendra Kumar
benchmark/Streamly/Benchmark/Data/Parser.hs+12
@@ -1,5 +1,10 @@
1{-# OPTIONS_GHC -Wno-deprecations #-}
1{-# OPTIONS_GHC -Wno-deprecations #-}
2
2
3+#undef FUSION_CHECK
4+#ifdef FUSION_CHECK
5+{-# OPTIONS_GHC -ddump-simpl -ddump-to-file -dsuppress-all #-}
6+#endif
7+
3-- |
8-- |
4-- Module : Streamly.Benchmark.Data.Parser
9-- Module : Streamly.Benchmark.Data.Parser
5-- Copyright : (c) 2020 Composewell Technologies
10-- Copyright : (c) 2020 Composewell Technologies
@@ -551,6 +556,7 @@ o_n_heap_serial value =
551
556
552main :: IO ()
557main :: IO ()
553main = do
558main = do
559+#ifndef FUSION_CHECK
554 env <- mkHandleBenchEnv
560 env <- mkHandleBenchEnv
555 runWithCLIOptsEnv defaultStreamSize alloc (allBenchmarks env)
561 runWithCLIOptsEnv defaultStreamSize alloc (allBenchmarks env)
556
562
@@ -567,3 +573,9 @@ main = do
567 (o_1_space_serial_unfold value arrays)
573 (o_1_space_serial_unfold value arrays)
568 , bgroup (o_n_heap_prefix moduleName) (o_n_heap_serial value)
574 , bgroup (o_n_heap_prefix moduleName) (o_n_heap_serial value)
569 ]
575 ]
576+#else
577+ let value = 100000
578+ let input = sourceUnfoldrM value 1
579+ manyTill value input
580+ return ()
581+#endif