[commit: ghc] ghc-8.0: Second attempt to fix sizeExpr (498009a)
git at git.haskell.org
git at git.haskell.org
Thu Aug 25 15:04:27 UTC 2016
Repository : ssh://git@git.haskell.org/ghc
On branch : ghc-8.0
Link : http://ghc.haskell.org/trac/ghc/changeset/498009a904a1e8910f9e0e527f6eb6c8073c8a76/ghc
>---------------------------------------------------------------
commit 498009a904a1e8910f9e0e527f6eb6c8073c8a76
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
(cherry picked from commit a47b62cb36853d03c77ef63b3208b3d869fb687e)
>---------------------------------------------------------------
498009a904a1e8910f9e0e527f6eb6c8073c8a76
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 498009a904a1e8910f9e0e527f6eb6c8073c8a76
More information about the ghc-commits
mailing list