[GHC] #9476: Implement late lambda-lifting
GHC
ghc-devs at haskell.org
Wed Nov 28 10:51:44 UTC 2018
#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):
I was referring to the `paraffins` measurements in comment:55.
Deactivating the closure growth checks (thus allowing more bindings to
lift at the potential cost of more allocations) leads to an overall
improvement, most significantly visible in `paraffins` with an increase of
18% in allocations but 11% less executed instructions. The measurements I
posted are for runtime. There's a reproducible speedup (0.533s vs 0.581s),
too, which is mostly due to trading time in the GC for time in the
mutator. That's also apparent by resizing the nursery so that no GC needs
to happen (the second pair of measurements with `-A600M`).
I regard this as 'better code', because it's faster in the default case,
where we don't tune the nursery to fit all allocations, i.e. more mutator
time is OK as long as total time goes down. In comment:56 I go on to
wonder why that is the case.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9476#comment:58>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list