[commit: ghc] wip/spj-early-inline4: The Early Inline Patch (da9aaad)
git at git.haskell.org
git at git.haskell.org
Sun Feb 26 18:06:40 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/spj-early-inline4
Link : http://ghc.haskell.org/trac/ghc/changeset/da9aaad9610c7e1dcd5cb624f87ced9b003ae569/ghc
>---------------------------------------------------------------
commit da9aaad9610c7e1dcd5cb624f87ced9b003ae569
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!
>---------------------------------------------------------------
da9aaad9610c7e1dcd5cb624f87ced9b003ae569
compiler/simplCore/SimplCore.hs | 38 +++++++-
compiler/simplCore/SimplUtils.hs | 60 +++++-------
.../tests/codeGen/should_compile/debug.stdout | 3 +-
testsuite/tests/concurrent/should_run/T4030.stderr | 1 -
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 +-
25 files changed, 219 insertions(+), 244 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 da9aaad9610c7e1dcd5cb624f87ced9b003ae569
More information about the ghc-commits
mailing list