diff options
Diffstat (limited to 'testsuite/tests/perf/compiler')
-rw-r--r-- | testsuite/tests/perf/compiler/T5321FD.hs | 2 | ||||
-rw-r--r-- | testsuite/tests/perf/compiler/T5321Fun.hs | 2 | ||||
-rw-r--r-- | testsuite/tests/perf/compiler/T5837.stderr | 2 | ||||
-rw-r--r-- | testsuite/tests/perf/compiler/T9020.hs | 1683 | ||||
-rw-r--r-- | testsuite/tests/perf/compiler/all.T | 98 | ||||
-rw-r--r-- | testsuite/tests/perf/compiler/simpl015.hs | 1683 |
6 files changed, 3439 insertions, 31 deletions
diff --git a/testsuite/tests/perf/compiler/T5321FD.hs b/testsuite/tests/perf/compiler/T5321FD.hs index 6e10939837..004f487098 100644 --- a/testsuite/tests/perf/compiler/T5321FD.hs +++ b/testsuite/tests/perf/compiler/T5321FD.hs @@ -1,7 +1,7 @@ {-# OPTIONS_GHC -fcontext-stack=1000 #-} {-# LANGUAGE FlexibleContexts, FlexibleInstances, FunctionalDependencies, - MultiParamTypeClasses, OverlappingInstances, TypeSynonymInstances, + MultiParamTypeClasses, TypeSynonymInstances, TypeOperators, UndecidableInstances, TypeFamilies #-} module T5321FD where diff --git a/testsuite/tests/perf/compiler/T5321Fun.hs b/testsuite/tests/perf/compiler/T5321Fun.hs index efd7db770b..bf70ce5221 100644 --- a/testsuite/tests/perf/compiler/T5321Fun.hs +++ b/testsuite/tests/perf/compiler/T5321Fun.hs @@ -1,7 +1,7 @@ {-# OPTIONS_GHC -fcontext-stack=1000 #-} {-# LANGUAGE FlexibleContexts, FlexibleInstances, FunctionalDependencies, - MultiParamTypeClasses, OverlappingInstances, TypeSynonymInstances, + MultiParamTypeClasses, TypeSynonymInstances, TypeOperators, UndecidableInstances, TypeFamilies #-} module T5321Fun where diff --git a/testsuite/tests/perf/compiler/T5837.stderr b/testsuite/tests/perf/compiler/T5837.stderr index 2d2907d3ae..5cee13dd1d 100644 --- a/testsuite/tests/perf/compiler/T5837.stderr +++ b/testsuite/tests/perf/compiler/T5837.stderr @@ -158,4 +158,4 @@ T5837.hs:8:6: (TF a))))))))))))))))))))))))))))))))))))))))))))))))) In the ambiguity check for: forall a. a ~ TF (a, Int) => Int - In the type signature for ‘t’: t :: a ~ TF (a, Int) => Int + In the type signature for ‘t’: t :: (a ~ TF (a, Int)) => Int diff --git a/testsuite/tests/perf/compiler/T9020.hs b/testsuite/tests/perf/compiler/T9020.hs new file mode 100644 index 0000000000..2ce70406be --- /dev/null +++ b/testsuite/tests/perf/compiler/T9020.hs @@ -0,0 +1,1683 @@ +-- Test for ticket #830, simplifier taking too long on large do expression + +main = do + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () diff --git a/testsuite/tests/perf/compiler/all.T b/testsuite/tests/perf/compiler/all.T index 647548a9c2..ea62520b07 100644 --- a/testsuite/tests/perf/compiler/all.T +++ b/testsuite/tests/perf/compiler/all.T @@ -42,15 +42,17 @@ test('T1969', # 2013-02-13 27, very unstable! # 2013-09-11 30 (amd64/Linux) compiler_stats_num_field('max_bytes_used', - [(platform('i386-unknown-mingw32'), 7295012, 20), + [(platform('i386-unknown-mingw32'), 5719436, 20), # 2010-05-17 5717704 (x86/Windows) # 2013-02-10 5159748 (x86/Windows) # 2013-02-10 5030080 (x86/Windows) # 2013-11-13 7295012 (x86/Windows, 64bit machine) - (wordsize(32), 6429864, 1), + # 2014-04-24 5719436 (x86/Windows, 64bit machine) + (wordsize(32), 5949188, 1), # 6707308 (x86/OS X) # 2009-12-31 6149572 (x86/Linux) # 2014-01-22 6429864 (x86/Linux) + # 2014-06-29 5949188 (x86/Linux) (wordsize(64), 11000000, 20)]), # looks like the peak is around ~10M, but we're # unlikely to GC exactly on the peak. @@ -58,18 +60,20 @@ test('T1969', # hence 10% range. # See Note [residency] to get an accurate view. compiler_stats_num_field('bytes allocated', - [(platform('i386-unknown-mingw32'), 317975916, 5), + [(platform('i386-unknown-mingw32'), 301784492, 5), # 215582916 (x86/Windows) # 2012-10-29 298921816 (x86/Windows) # 2013-02-10 310633884 (x86/Windows) # 2013-11-13 317975916 (x86/Windows, 64bit machine) - (wordsize(32), 316103268, 1), + # 2014-04-04 301784492 (x86/Windows, 64bit machine) + (wordsize(32), 303300692, 1), # 221667908 (x86/OS X) # 274932264 (x86/Linux) # 2012-10-08 303930948 (x86/Linux, new codegen) # 2013-02-10 322937684 (x86/OSX) # 2014-01-22 316103268 (x86/Linux) - (wordsize(64), 660922376, 5)]), + # 2014-06-29 303300692 (x86/Linux) + (wordsize(64), 651626680, 5)]), # 17/11/2009 434845560 (amd64/Linux) # 08/12/2009 459776680 (amd64/Linux) # 17/05/2010 519377728 (amd64/Linux) @@ -85,6 +89,7 @@ test('T1969', # 17/1/13: 667160192 (x86_64/Linux) new demand analyser # 18/10/2013 698612512 (x86_64/Linux) fix for #8456 # 10/02/2014 660922376 (x86_64/Linux) call artiy analysis + # 17/07/2014 651626680 (x86_64/Linux) roundabout update only_ways(['normal']), extra_hc_opts('-dcore-lint -static') @@ -109,13 +114,14 @@ else: test('T3294', [ compiler_stats_num_field('max_bytes_used', # Note [residency] - [(wordsize(32), 24009436, 15), + [(wordsize(32), 19882188, 15), # 17725476 (x86/OS X) # 14593500 (Windows) # 2013-02-10 20651576 (x86/Windows) # 2013-02-10 20772984 (x86/OSX) # 2013-11-13 24009436 (x86/Windows, 64bit machine) - (wordsize(64), 43224080, 15)]), + # 2014-04-24 19882188 (x86/Windows, 64bit machine) + (wordsize(64), 40000000, 15)]), # prev: 25753192 (amd64/Linux) # 29/08/2012: 37724352 (amd64/Linux) # (increase due to new codegen, see #7198) @@ -125,15 +131,18 @@ test('T3294', # (reason for decrease unknown) # 29/5/2013: 43224080 (amd64/Linux) # (reason for increase back to earlier value unknown) + # 2014-07-14: 36670800 (amd64/Linux) + # (reason unknown, setting expected value somewhere in between) compiler_stats_num_field('bytes allocated', - [(wordsize(32), 1565185140, 5), + [(wordsize(32), 1377050640, 5), # previous: 815479800 (x86/Linux) # (^ increase due to new codegen, see #7198) # 2012-10-08: 1373514844 (x86/Linux) # 2013-11-13: 1478325844 (x86/Windows, 64bit machine) # 2014-01-12: 1565185140 (x86/Linux) - (wordsize(64), 2705289664, 5)]), + # 2013-04-04: 1377050640 (x86/Windows, 64bit machine) + (wordsize(64), 2671595512, 5)]), # old: 1357587088 (amd64/Linux) # 29/08/2012: 2961778696 (amd64/Linux) # (^ increase due to new codegen, see #7198) @@ -142,6 +151,7 @@ test('T3294', # 12/12/2013: 3083825616 (amd64/Linux) (reason unknown) # 18/02/2014: 2897630040 (amd64/Linux) (call arity improvements) # 12/03/2014: 2705289664 (amd64/Linux) (more call arity improvements) + # 2014-17-07: 2671595512 (amd64/Linux) (round-about update) conf_3294 ], compile, @@ -223,20 +233,23 @@ test('T3064', # 2012-10-30: 111189536 (x86/Windows) # 2013-11-13: 146626504 (x86/Windows, 64bit machine) # 2014-01-22: 162457940 (x86/Linux) - (wordsize(64), 308422280, 5)]), + (wordsize(64), 332702112, 5)]), # (amd64/Linux) (28/06/2011): 73259544 # (amd64/Linux) (07/02/2013): 224798696 # (amd64/Linux) (02/08/2013): 236404384, increase from roles # (amd64/Linux) (11/09/2013): 290165632, increase from AMP warnings # (amd64/Linux) (22/11/2013): 308300448, GND via Coercible and counters for constraints solving - # (amd64/Linux) (02/12/2013): 329795912, Coercible refactor + # (amd64/Linux) (02/12/2013): 329795912, Coercible refactor # (amd64/Linux) (11/02/2014): 308422280, optimize Coercions in simpleOptExpr + # (amd64/Linux) (23/05/2014): 324022680, unknown cause + # (amd64/Linux) (2014-07-17): 332702112, general round of updates compiler_stats_num_field('max_bytes_used', - [(wordsize(32), 7218200 , 20), - # 2011-06-28: 2247016 (x86/Linux) (28/6/2011): - #(some date): 5511604 - # 2013-11-13: 7218200 (x86/Windows, 64bit machine) + [(wordsize(32), 11202304, 20), + # 2011-06-28: 2247016 (x86/Linux) (28/6/2011): + #(some date): 5511604 + # 2013-11-13: 7218200 (x86/Windows, 64bit machine) + # 2014-04-04: 11202304 (x86/Windows, 64bit machine) (wordsize(64), 19821544, 20)]), # (amd64/Linux, intree) (28/06/2011): 4032024 # (amd64/Linux, intree) (07/02/2013): 9819288 @@ -264,7 +277,7 @@ test('T5030', # previous: 196457520 # 2012-10-08: 259547660 (x86/Linux, new codegen) # 2013-11-21: 198573456 (x86 Windows, 64 bit machine) - (wordsize(64), 397672152, 10)]), + (wordsize(64), 409314320, 10)]), # Previously 530000000 (+/- 10%) # 17/1/13: 602993184 (x86_64/Linux) # (new demand analyser) @@ -274,6 +287,8 @@ test('T5030', # decrease from more aggressive coercion optimisations from roles # 2013-11-12 397672152 (amd64/Linux) # big decrease following better CSE and arity + # 2014-07-17 409314320 (amd64/Linux) + # general round of updates only_ways(['normal']) ], @@ -282,8 +297,9 @@ test('T5030', test('T5631', [compiler_stats_num_field('bytes allocated', - [(wordsize(32), 392904228, 10), + [(wordsize(32), 346389856, 10), # expected value: 392904228 (x86/Linux) + # 2014-04-04: 346389856 (x86 Windows, 64 bit machine) (wordsize(64), 690742040, 5)]), # expected value: 774595008 (amd64/Linux): # expected value: 735486328 (amd64/Linux) 2012/12/12: @@ -307,11 +323,12 @@ test('T783', [ only_ways(['normal']), # no optimisation for this one # expected value: 175,569,928 (x86/Linux) compiler_stats_num_field('bytes allocated', - [(wordsize(32), 333833658, 2), + [(wordsize(32), 319179104, 5), # 2012-10-08: 226907420 (x86/Linux) # 2013-02-10: 329202116 (x86/Windows) # 2013-02-10: 338465200 (x86/OSX) - (wordsize(64), 654804144, 10)]), + # 2014-04-04: 319179104 (x86 Windows, 64 bit machine) + (wordsize(64), 640031840, 10)]), # prev: 349263216 (amd64/Linux) # 07/08/2012: 384479856 (amd64/Linux) # 29/08/2012: 436927840 (amd64/Linux) @@ -322,6 +339,8 @@ test('T783', # (fix for #8456) # 24/10/2013: 654804144 (amd64/Linux) # (fix previous fix for #8456) + # 2014-07-17: 640031840 (amd64/Linux) + # (general round of updates) extra_hc_opts('-static') ], compile,['']) @@ -347,11 +366,13 @@ test('T5321Fun', test('T5321FD', [ only_ways(['normal']), # no optimisation for this one compiler_stats_num_field('bytes allocated', - [(wordsize(32), 240302920, 10), + [(wordsize(32), 211699816, 10), # prev: 213380256 # 2012-10-08: 240302920 (x86/Linux) # (increase due to new codegen) - (wordsize(64), 476497048, 10)]) + # 2014-07-31: 211699816 (Windows) (-11%) + # (due to better optCoercion, 5e7406d9, #9233) + (wordsize(64), 426960992, 10)]) # prev: 418306336 # 29/08/2012: 492905640 # (increase due to new codegen) @@ -359,6 +380,10 @@ test('T5321FD', # (reason for decrease unknown) # 08/06/2013: 476497048 # (reason for increase unknown) + # before 2014-07-17: 441997096 + # (with -8%, still in range, hence cause not known) + # 2014-07-17: 426960992 (-11% of previous value) + # (due to better optCoercion, 5e7406d9, #9233) ], compile,['']) @@ -367,7 +392,10 @@ test('T5642', compiler_stats_num_field('bytes allocated', [(wordsize(32), 650000000, 10), # sample from x86/Linux - (wordsize(64), 1300000000, 10)]) + (wordsize(64), 1402242360, 10)]) + # prev: 1300000000 + # 2014-07-17: 1358833928 (general round of updates) + # 2014-08-07: 1402242360 (caused by 1fc60ea) ], compile,['-O']) @@ -382,22 +410,36 @@ test('T5837', # 2012-10-02 81879216 # 2012-09-20 87254264 amd64/Linux # 2013-09-18 90587232 amd64/Linux - # 2013-11-21 86795752 amd64/Linux, GND via Coercible and counters - # for constraints solving + # 2013-11-21 86795752 amd64/Linux, GND via Coercible and counters + # for constraints solving ], compile_fail,['-ftype-function-depth=50']) test('T6048', [ only_ways(['optasm']), compiler_stats_num_field('bytes allocated', - [(wordsize(32), 48887164, 10), + [(wordsize(32), 62618072, 10), # prev: 38000000 (x86/Linux) # 2012-10-08: 48887164 (x86/Linux) - (wordsize(64), 110646312, 10)]) - # 18/09/2012 97247032 amd64/Linux + # 2014-04-04: 62618072 (x86 Windows, 64 bit machine) + (wordsize(64), 125431448, 12)]) + # 18/09/2012 97247032 amd64/Linux # 16/01/2014 108578664 amd64/Linux (unknown, likely foldl-via-foldr) - # 18/01/2014 95960720 amd64/Linux Call Arity improvements + # 18/01/2014 95960720 amd64/Linux Call Arity improvements # 28/02/2014 105556793 amd64/Linux (unknown, tweak in base/4d9e7c9e3 resulted in change) # 05/03/2014 110646312 amd64/Linux Call Arity became more elaborate + # 14/07/2014 125431448 amd64/Linux unknown reason. Even worse in GHC-7.8.3. *shurg* + ], + compile,['']) + +test('T9020', + [ only_ways(['optasm']), + compiler_stats_num_field('bytes allocated', + [(wordsize(32), 343005716, 10), + # Original: 381360728 + # 2014-07-31: 343005716 (Windows) (general round of updates) + (wordsize(64), 728263536, 10)]) + # prev: 795469104 + # 2014-07-17: 728263536 (general round of updates) ], compile,['']) diff --git a/testsuite/tests/perf/compiler/simpl015.hs b/testsuite/tests/perf/compiler/simpl015.hs new file mode 100644 index 0000000000..2ce70406be --- /dev/null +++ b/testsuite/tests/perf/compiler/simpl015.hs @@ -0,0 +1,1683 @@ +-- Test for ticket #830, simplifier taking too long on large do expression + +main = do + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () + return () |