[commit: ghc] master: Performance improvement of the compiler itself (5da580b)

git at git.haskell.org git at git.haskell.org
Fri Aug 29 16:17:28 UTC 2014


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/5da580beacb0da1f7bf8e300e074e5cad88b8bbc/ghc

>---------------------------------------------------------------

commit 5da580beacb0da1f7bf8e300e074e5cad88b8bbc
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Fri Aug 29 17:16:36 2014 +0100

    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.


>---------------------------------------------------------------

5da580beacb0da1f7bf8e300e074e5cad88b8bbc
 testsuite/tests/perf/compiler/all.T | 9 ++++++---
 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 1cf4287..cc635ff 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 1ef4fbc..80a55d1 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)



More information about the ghc-commits mailing list