Re: [GHC] #7511: Room for GHC runtime improvement >~5%, inlining related

#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
participants (1)
-
GHC