[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