[GHC] #7511: Room for GHC runtime improvement >~5%, inlining related
GHC
cvs-ghc at haskell.org
Fri Feb 15 18:08:15 CET 2013
#7511: Room for GHC runtime improvement >~5%, inlining related
---------------------------------+------------------------------------------
Reporter: danielv | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.6.1
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: Runtime performance bug
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Changes (by simonpj):
* cc: simonpj@… (removed)
* difficulty: => Unknown
Comment:
Right! I think this loss of let-no-escapey-ness is precisely what can
cause increased allocation when we inline. Daniel and I found this (hence
the birth of this ticket), and I believe that the LNE thing was the sole
cause we identified.
One might solve this by making the code generator yet more clever, so that
it can avoid allocation for non-escaping functions, even they aren't tail
calls. But that is quite hard.
More promising, I think, is to float that `j` function to top level
altogether, and that is what Nick is working on. I'm hopeful that this'll
solve much of the problem.
See also #5075 which reports a similar difficulty with LNEs becoming non-
LNEs.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7511#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list