[commit: ghc] master: Second attempt to fix sizeExpr (a47b62c)
git at git.haskell.org
git at git.haskell.org
Wed Jun 22 08:56:18 UTC 2016
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/a47b62cb36853d03c77ef63b3208b3d869fb687e/ghc
>---------------------------------------------------------------
commit a47b62cb36853d03c77ef63b3208b3d869fb687e
Author: Simon Marlow <marlowsd at gmail.com>
Date: Fri Jun 17 11:21:52 2016 +0100
Second attempt to fix sizeExpr
Summary:
Background:
* sizeExpr was calculating expressions like ((e `cast` T) x) wrongly
* Fixing it caused regressions in compile performance, and one nofib
program (k-nucleotide)
I managed to fix the source of the compiler regressions. I think it was
due to traceTc not being inlined, which I fixed in a more robust way by
putting an export list on TcRnMonad.
The k-nucleotide regression is more difficult. I don't think anything
is actually going wrong, but this program has been highly tuned and is
quite sensitive to changing in inlining behaviour. I managed to recover
most of the performance by manual lambda-lifting which makes it a bit
less fragile, but the end result was a bit slower. I don't think this
is disastrous, the program is pretty horrible to begin with and we could
probably make a faster one by starting from scratch.
Test Plan: validate, nofib
Reviewers: simonpj, bgamari, niteria, austin, erikd
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2338
GHC Trac Issues: #11564
>---------------------------------------------------------------
a47b62cb36853d03c77ef63b3208b3d869fb687e
compiler/coreSyn/CoreUnfold.hs | 66 ++++++++++++++-------
compiler/typecheck/TcRnMonad.hs | 127 +++++++++++++++++++++++++++++++++++++---
2 files changed, 163 insertions(+), 30 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 a47b62cb36853d03c77ef63b3208b3d869fb687e
More information about the ghc-commits
mailing list