diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2014-08-29 17:16:36 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2014-08-29 17:16:55 +0100 |
commit | 5da580beacb0da1f7bf8e300e074e5cad88b8bbc (patch) | |
tree | 642d0a054a491f82453ed5dbb4be5be7e89783df /testsuite | |
parent | 393506269315bca66aae91517b75e0a003470c84 (diff) | |
download | haskell-5da580beacb0da1f7bf8e300e074e5cad88b8bbc.tar.gz |
Performance improvement of the compiler itself
This is a result of one of these, or a combination
002b7a2b * Give the worker for an INLINABLE function a suitably-phased Activation
ca666b8b * When finding loop breakers, distinguish INLINE from INLINEABLE
a98c9c5e * Fix a bug in CSE, for INLINE/INLNEABLE things
Some changes are quite big: for bytes_allocated we have
T6048: 13% below expected
T5837: 15% below expected
T3064: 5% below expected
Of course, these might have already been close to their lower
threshold, so perhaps not all the improvement is from here.
But it is good news all the same.
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/tests/perf/compiler/all.T | 9 | ||||
-rw-r--r-- | testsuite/tests/perf/haddock/all.T | 8 |
2 files changed, 12 insertions, 5 deletions
diff --git a/testsuite/tests/perf/compiler/all.T b/testsuite/tests/perf/compiler/all.T index 1cf4287338..cc635ff50e 100644 --- a/testsuite/tests/perf/compiler/all.T +++ b/testsuite/tests/perf/compiler/all.T @@ -235,7 +235,7 @@ test('T3064', # 2012-10-30: 111189536 (x86/Windows) # 2013-11-13: 146626504 (x86/Windows, 64bit machine) # 2014-01-22: 162457940 (x86/Linux) - (wordsize(64), 332702112, 5)]), + (wordsize(64), 313638592, 5)]), # (amd64/Linux) (28/06/2011): 73259544 # (amd64/Linux) (07/02/2013): 224798696 # (amd64/Linux) (02/08/2013): 236404384, increase from roles @@ -245,6 +245,7 @@ test('T3064', # (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 + # (amd64/Linux) (2014-08-29): 313638592, w/w for INLINABLE things compiler_stats_num_field('max_bytes_used', [(wordsize(32), 11202304, 20), @@ -413,13 +414,14 @@ test('T5837', [(wordsize(32), 45520936 , 10), # 40000000 (x86/Linux) # 2013-11-13: 45520936 (x86/Windows, 64bit machine) - (wordsize(64), 86795752, 10)]) + (wordsize(64), 73639840, 10)]) # sample: 3926235424 (amd64/Linux, 15/2/2012) # 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 + # 2041-08-29 73639840 amd64/Linux, w/w for INLINABLE things ], compile_fail,['-ftype-function-depth=50']) @@ -430,13 +432,14 @@ test('T6048', # prev: 38000000 (x86/Linux) # 2012-10-08: 48887164 (x86/Linux) # 2014-04-04: 62618072 (x86 Windows, 64 bit machine) - (wordsize(64), 125431448, 12)]) + (wordsize(64), 108354472, 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 # 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* + # 29/08/2014 108354472 amd64/Linux w/w for INLINABLE things ], compile,['']) diff --git a/testsuite/tests/perf/haddock/all.T b/testsuite/tests/perf/haddock/all.T index 1ef4fbc0d4..80a55d1739 100644 --- a/testsuite/tests/perf/haddock/all.T +++ b/testsuite/tests/perf/haddock/all.T @@ -17,7 +17,7 @@ test('haddock.base', # 2014-01-22: 168 (x86/Linux - new haddock) # 2014-06-29: 156 (x86/Linux) ,stats_num_field('max_bytes_used', - [(wordsize(64), 127954488, 10) + [(wordsize(64), 112286208, 10) # 2012-08-14: 87374568 (amd64/Linux) # 2012-08-21: 86428216 (amd64/Linux) # 2012-09-20: 84794136 (amd64/Linux) @@ -25,6 +25,7 @@ test('haddock.base', # 2013-01-29: 96022312 (amd64/Linux) # 2013-10-18: 115113864 (amd64/Linux) # 2014-07-31: 127954488 (amd64/Linux), correlates with 1ae5fa45 + # 2014-08-29: 112286208 (amd64/Linux), w/w for INLINABLE things ,(platform('i386-unknown-mingw32'), 58557136, 10) # 2013-02-10: 47988488 (x86/Windows) # 2013-11-13: 58557136 (x86/Windows, 64bit machine) @@ -103,7 +104,7 @@ test('haddock.Cabal', # 2014-01-22: 52718512 (x86/Linux) # 2014-06-29: 66411508 (x86/Linux) ,stats_num_field('bytes allocated', - [(wordsize(64), 4493770224, 5) + [(wordsize(64), 4267311856, 5) # 2012-08-14: 3255435248 (amd64/Linux) # 2012-08-29: 3324606664 (amd64/Linux, new codegen) # 2012-10-08: 3373401360 (amd64/Linux) @@ -116,12 +117,15 @@ test('haddock.Cabal', # 2014-01-12: 3979151552 (amd64/Linux) new parser # 2014-06-29: 4200993768 (amd64/Linux) # 2014-08-05: 4493770224 (x86_64/Linux - bugfix for #314, Haddock now parses more URLs) + # 2014-08-29: 4267311856 (x86_64/Linux - w/w for INLINABLE things) + ,(platform('i386-unknown-mingw32'), 2052220292, 5) # 2012-10-30: 1733638168 (x86/Windows) # 2013-02-10: 1906532680 (x86/Windows) # 2014-01-28: 1966911336 (x86/Windows) # 2014-04-24: 2052220292 (x86/Windows) # 2014-08-05: XXX TODO UPDATE ME XXX + ,(wordsize(32), 2127198484, 1)]) # 2012-08-14: 1648610180 (x86/OSX) # 2014-01-22: 1986290624 (x86/Linux) |