
#9476: Implement late lambda-lifting -------------------------------------+------------------------------------- Reporter: simonpj | Owner: sgraf Type: feature request | Status: closed Priority: normal | Milestone: 8.8.1 Component: Compiler | Version: 7.8.2 Resolution: fixed | Keywords: LateLamLift Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: #8763 #13286 | Differential Rev(s): Phab:D5224 Wiki Page: LateLamLift | -------------------------------------+------------------------------------- Comment (by sgraf): Now that #15999 has a fix, I redid some of the benchmarks. Before I got distracted, we were discussing whether the allocation heuristic ("don't allow closure growth") is really effective. Here are the results against 8.6 as the baseline: https://gist.github.com/sgraf812/d3eb0b2251512a1845adcbf356248c25 `ll-$date` is disallowing closure growth (notice absence of any regression in allocations), whereas `ll-c2-$date` allows closure growth and yields marginally better counted instructions at that. I expected more regressions in `ll-c2`, but there's really just `paraffins` regressing by over 1% wrt. `ll`. Note that `wheel-sieve1` still regresses by 28.7% in allocations, while not providing a real benefit. Let's see what `paraffins` is up to and what runtime measurements suggest. Maybe we can get rid of the closure growth heuristic (which would be a shame, but that's science). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9476#comment:75 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler