From 79e46aea1643b4dfdc7c846bbefe06b83b535efd Mon Sep 17 00:00:00 2001 From: Simon Peyton Jones Date: Thu, 24 Apr 2014 08:43:07 +0100 Subject: Don't eta-expand PAPs (fixes Trac #9020) See Note [Do not eta-expand PAPs] in SimplUtils. This has a tremendously good effect on compile times for some simple benchmarks. The test is now where it belongs, in perf/compiler/T9020 (instead of simpl015). I did a nofib run and got essentially zero change except for cacheprof which gets 4% more allocation. I investigated. Turns out that we have instance PP Reg where pp ppm ST_0 = "%st" pp ppm ST_1 = "%st(1)" pp ppm ST_2 = "%st(2)" pp ppm ST_3 = "%st(3)" pp ppm ST_4 = "%st(4)" pp ppm ST_5 = "%st(5)" pp ppm ST_6 = "%st(6)" pp ppm ST_7 = "%st(7)" pp ppm r = "%" ++ map toLower (show r) That (map toLower (show r) does a lot of map/toLowers. But if we inline show we get something like pp ppm ST_0 = "%st" pp ppm ST_1 = "%st(1)" pp ppm ST_2 = "%st(2)" pp ppm ST_3 = "%st(3)" pp ppm ST_4 = "%st(4)" pp ppm ST_5 = "%st(5)" pp ppm ST_6 = "%st(6)" pp ppm ST_7 = "%st(7)" pp ppm EAX = map toLower (show EAX) pp ppm EBX = map toLower (show EBX) ...etc... and all those map/toLower calls can now be floated to top level. This gives a 4% decrease in allocation. But it depends on inlining a pretty big 'show' function. With this new patch we get slightly better eta-expansion, which makes a function look slightly bigger, which just stops it being inlined. The previous behaviour was luck, so I'm not going to worry about losing it. I've added some notes to nofib/Simon-nofib-notes --- testsuite/tests/perf/compiler/T9020.hs | 1683 ++++++++++++++++++++ testsuite/tests/perf/compiler/all.T | 8 + testsuite/tests/perf/compiler/simpl015.hs | 1683 ++++++++++++++++++++ testsuite/tests/simplCore/should_compile/all.T | 1 - .../tests/simplCore/should_compile/simpl015.hs | 1683 -------------------- 5 files changed, 3374 insertions(+), 1684 deletions(-) create mode 100644 testsuite/tests/perf/compiler/T9020.hs create mode 100644 testsuite/tests/perf/compiler/simpl015.hs delete mode 100644 testsuite/tests/simplCore/should_compile/simpl015.hs (limited to 'testsuite') 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 2f4151f859..2bff1c72d5 100644 --- a/testsuite/tests/perf/compiler/all.T +++ b/testsuite/tests/perf/compiler/all.T @@ -407,3 +407,11 @@ test('T6048', # 05/03/2014 110646312 amd64/Linux Call Arity became more elaborate ], compile,['']) + +test('T9020', + [ only_ways(['optasm']), + compiler_stats_num_field('bytes allocated', + [(wordsize(32), 40000000, 10), + (wordsize(64), 795469104, 10)]) + ], + 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 () diff --git a/testsuite/tests/simplCore/should_compile/all.T b/testsuite/tests/simplCore/should_compile/all.T index 7239ffcfa5..616b6cc359 100644 --- a/testsuite/tests/simplCore/should_compile/all.T +++ b/testsuite/tests/simplCore/should_compile/all.T @@ -15,7 +15,6 @@ test('simpl011', normal, compile, ['']) test('simpl012', normal, compile, ['']) test('simpl013', normal, compile, ['']) test('simpl014', normal, compile, ['']) -test('simpl015', only_ways(['optasm']), compile, ['']) test('simpl016', normal, compile, ['-dsuppress-uniques']) test('simpl017', normal, compile_fail, ['']) test('simpl018', normal, compile, ['']) diff --git a/testsuite/tests/simplCore/should_compile/simpl015.hs b/testsuite/tests/simplCore/should_compile/simpl015.hs deleted file mode 100644 index 2ce70406be..0000000000 --- a/testsuite/tests/simplCore/should_compile/simpl015.hs +++ /dev/null @@ -1,1683 +0,0 @@ --- 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 () -- cgit v1.2.1