[commit: ghc] master: ignore RealWorld in size_expr; flag to keep w/w from creating sharing (af12cf6)
Nicolas Frisby
nicolas.frisby at gmail.com
Thu Apr 11 19:50:01 CEST 2013
Repository : http://darcs.haskell.org/ghc.git/
On branch : master
https://github.com/ghc/ghc/commit/af12cf66d1a416a135cb98b86717aba2cd247e1a
>---------------------------------------------------------------
commit af12cf66d1a416a135cb98b86717aba2cd247e1a
Author: Nicolas Frisby <nicolas.frisby at gmail.com>
Date: Thu Apr 11 12:48:11 2013 +0100
ignore RealWorld in size_expr; flag to keep w/w from creating sharing
size_expr now ignores RealWorld lambdas, arguments, and applications.
Worker-wrapper previously removed all lambdas from a function, if they
were all unused. Removing *all* value lambdas is no longer
allowed. Instead (\_ -> E) will become (\_void -> E), where it used to
become E. The previous behavior can be recovered via the new
-ffun-to-thunk flag.
Nofib notables:
----------------------------------------------------------------
Program O2 O2 newly ignoring RealWorld
and not turning function
closures into thunks
----------------------------------------------------------------
Allocations
comp_lab_zift 333090392% -5.0%
reverse-complem 155188304% -3.2%
rewrite 15380888% +4.0%
boyer2 3901064% +7.5%
rewrite previously benefited from fortunate LoopBreaker choice that is
now disrupted.
A function in boyer2 goes from $wonewayunify1 size 700 to size 650,
thus gets inlined into rewritelemmas, thus exposing a parameter
scrutinisation, thus allowing SpecConstr, which unfortunately involves
reboxing.
Run Time
fannkuch-redux 7.89% -15.9%
hpg 0.25% +5.6%
wang 0.21% +5.8%
/shrug
compiler/coreSyn/CoreUnfold.lhs | 51 +++++++++++++++++++++++---------------
compiler/main/DynFlags.hs | 2 ++
compiler/specialise/SpecConstr.lhs | 2 +-
compiler/stranal/WwLib.lhs | 24 +++++++++++++++---
docs/users_guide/flags.xml | 11 ++++++++
5 files changed, 65 insertions(+), 25 deletions(-)
Diff suppressed because of size. To see it, use:
git show af12cf66d1a416a135cb98b86717aba2cd247e1a
More information about the ghc-commits
mailing list