[GHC] #7664: consider free variables as well as parameters in inline discounts
GHC
cvs-ghc at haskell.org
Tue Feb 5 15:16:43 CET 2013
#7664: consider free variables as well as parameters in inline discounts
-----------------------------+----------------------------------------------
Reporter: nfrisby | Owner:
Type: feature request | Status: new
Priority: normal | Component: Compiler
Version: 7.7 | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: None/Unknown | Blockedby:
Blocking: | Related:
-----------------------------+----------------------------------------------
The inliner assigns discount values for scrutinized parameters but not for
scrutinized free variables.
Experimenting with an aggressive lambda float at the end of the core2core
pipeline identified a situation where (effectively) assigning discounts to
free variables gives a performance boost. (The free variables become
parameters during the float and hence are then assigned discounts.)
For spectral/boyer2, doing the late lambda float and then simplifying
results in a -7% improvement in allocation. Without the simplifications,
the late lambda float alone does not change allocation: thus the lion's
share of the -7% could be attained simply by assigning discounts to
scrutinized free variables.
For reference: the function in boyer2 that gets inlined is a join point
that arises near the top of the worker for "Rewritefns.onewayunify".
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7664>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list