[commit: ghc] master: The Early Inline Patch (2effe18)

git at git.haskell.org git at git.haskell.org
Tue Feb 28 21:07:31 UTC 2017


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

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/2effe18ab51d66474724d38b20e49cc1b8738f60/ghc

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

commit 2effe18ab51d66474724d38b20e49cc1b8738f60
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Tue Feb 28 16:07:20 2017 -0500

    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!
    
    Reviewers: austin, bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D3203


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

2effe18ab51d66474724d38b20e49cc1b8738f60
 compiler/simplCore/SimplCore.hs                    |  38 +++++++-
 compiler/simplCore/SimplUtils.hs                   |  60 +++++-------
 .../tests/codeGen/should_compile/debug.stdout      |   3 +-
 testsuite/tests/deriving/perf/all.T                |   3 +-
 .../indexed-types/should_compile/T7837.stderr      |   3 +-
 testsuite/tests/perf/compiler/T4007.stdout         |   8 +-
 testsuite/tests/perf/compiler/all.T                |  65 +++++++++----
 testsuite/tests/perf/haddock/all.T                 |   3 +-
 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/T3772.stdout    |  88 +++++++++---------
 .../tests/simplCore/should_compile/T4138.stdout    |   2 +-
 testsuite/tests/simplCore/should_compile/T7785.hs  |  14 ++-
 testsuite/tests/simplCore/should_compile/T8848.hs  |  13 ++-
 .../tests/simplCore/should_compile/T8848.stderr    | 101 ---------------------
 .../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 +-
 testsuite/tests/th/TH_Roles2.stderr                |   4 +-
 24 files changed, 219 insertions(+), 243 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 2effe18ab51d66474724d38b20e49cc1b8738f60


More information about the ghc-commits mailing list