[commit: ghc] wip/spj-early-inline2: The Early Inline Patch (a234014)

git at git.haskell.org git at git.haskell.org
Tue Feb 21 23:27:08 UTC 2017


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

On branch  : wip/spj-early-inline2
Link       : http://ghc.haskell.org/trac/ghc/changeset/a23401493e8763c8f052a9e57b5c5de353173fac/ghc

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

commit a23401493e8763c8f052a9e57b5c5de353173fac
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Tue Feb 14 15:08:24 2017 +0000

    The Early Inline Patch
    
    This very small patch switches on sm_inline even in the InitialPhase
    (aka "gentle" phase).   There is no reason not to... and the results
    are astonishing.
    
    I think the peformance of GHC itself improves by about 5%; and some
    programs get much smaller, quicker.  Result: across the board irmprovements in
    compile time performance.  Here are the changes in perf/compiler;
    the numbers are decreases in compiler bytes-allocated:
    
      3%   T5837
      7%   parsing001
      9%   T12234
      35%  T9020
      9%   T3064
      13%  T9961
      20%  T13056
      5%   T9872d
      5%   T9872c
      5%   T9872b
      7%   T9872a
      5%   T783
      35%  T12227
      20%  T1969
    
    Plus in perf/should_run
    
      5%   lazy-bs-alloc
    
    It wasn't as easy as it sounds: I did a raft of preparatory work in
    earlier patches.  But it's great!


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

a23401493e8763c8f052a9e57b5c5de353173fac
 compiler/simplCore/SimplCore.hs                    | 40 ++++++++--
 compiler/simplCore/SimplUtils.hs                   | 60 ++++++---------
 .../tests/deSugar/should_compile/T2431.stderr      |  2 +-
 .../indexed-types/should_compile/T7837.stderr      |  3 +-
 .../tests/numeric/should_compile/T7116.stdout      | 16 ++--
 testsuite/tests/perf/compiler/T4007.stdout         |  8 +-
 testsuite/tests/perf/compiler/all.T                | 39 +++++++---
 testsuite/tests/perf/should_run/all.T              |  2 +
 testsuite/tests/simplCore/should_compile/Makefile  | 11 ++-
 testsuite/tests/simplCore/should_compile/T10181.hs |  5 ++
 .../tests/simplCore/should_compile/T3234.stderr    | 13 ++--
 .../tests/simplCore/should_compile/T3772.stdout    | 88 +++++++++++-----------
 .../tests/simplCore/should_compile/T4138.stdout    |  2 +-
 .../tests/simplCore/should_compile/T7360.stderr    |  2 +-
 testsuite/tests/simplCore/should_compile/T7785.hs  | 14 +++-
 testsuite/tests/simplCore/should_compile/T8848.hs  | 13 +++-
 .../tests/simplCore/should_compile/T9509.stdout    |  1 +
 testsuite/tests/simplCore/should_compile/T9509a.hs |  4 +-
 testsuite/tests/simplCore/should_compile/all.T     |  6 +-
 .../tests/simplCore/should_compile/rule2.stderr    | 13 ++--
 testsuite/tests/simplCore/should_run/T7611.hs      |  1 +
 .../tests/simplCore/should_run/simplrun002.hs      |  8 +-
 .../tests/simplCore/should_run/simplrun008.hs      |  6 +-
 23 files changed, 208 insertions(+), 149 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc a23401493e8763c8f052a9e57b5c5de353173fac


More information about the ghc-commits mailing list