Add performance test for #13056
authorRyan Scott <ryan.gl.scott@gmail.com>
Wed, 4 Jan 2017 18:57:25 +0000 (13:57 -0500)
committerRyan Scott <ryan.gl.scott@gmail.com>
Fri, 6 Jan 2017 14:34:32 +0000 (09:34 -0500)
This performance regression was fixed by commit
517d03e41b4f5c144d1ad684539340421be2be2a (#12234). Let's add a performance test
to ensure that it doesn't break again.

testsuite/tests/perf/compiler/T13056.hs [new file with mode: 0644]
testsuite/tests/perf/compiler/all.T

diff --git a/testsuite/tests/perf/compiler/T13056.hs b/testsuite/tests/perf/compiler/T13056.hs
new file mode 100644 (file)
index 0000000..046e1b0
--- /dev/null
@@ -0,0 +1,26 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DeriveFunctor #-}
+{-# LANGUAGE DeriveFoldable #-}
+
+module Bug where
+import Data.Typeable
+import GHC.Generics
+import Data.Data
+
+data Condition v = Condition
+    deriving (Functor, Foldable)
+
+data CondTree v c a = CondNode
+    { condTreeData        :: a
+    , condTreeConstraints :: c
+    , condTreeComponents  :: [CondBranch v c a]
+    }
+    deriving (Functor, Foldable)
+
+data CondBranch v c a = CondBranch
+    { condBranchCondition :: Condition v
+    , condBranchIfTrue    :: CondTree v c a
+    , condBranchIfFalse   :: Maybe (CondTree v c a)
+    }
+    deriving (Functor, Foldable)
index c9ed905..3b5e5bf 100644 (file)
@@ -902,7 +902,6 @@ test('T12234',
      compile,
      [''])
 
-
 test('T13035',
      [ only_ways(['normal']),
        compiler_stats_num_field('bytes allocated',
@@ -912,3 +911,13 @@ test('T13035',
      ],
      compile,
      [''] )
+
+test('T13056',
+     [ only_ways(['optasm']),
+       compiler_stats_num_field('bytes allocated',
+         [(wordsize(64), 520166912, 5),
+         # 2017-01-06    520166912 initial
+         ]),
+     ],
+     compile,
+     ['-O1'])