Opened 4 years ago

Last modified 5 days ago

#9476 new feature request

Implement late lambda-lifting

Reported by: simonpj Owned by: nfrisby
Priority: normal Milestone:
Component: Compiler Version: 7.8.2
Keywords: Cc: bgamari, kavon
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Runtime performance bug Test Case:
Blocked By: Blocking:
Related Tickets: #8763 Differential Rev(s):
Wiki Page: LateLamLift

Description (last modified by simonpj)

This ticket exists to coordinate work on Nick Frisby's late lambda-lifting optimisation.

  • Branch in GHC repo: wip/llf
  • Related tickets
    • #9279: local closure remains in final program
    • #9374: static argument transformation
    • #5945 (closed as dup, but with useful example)
    • #11284 (closed as dup, but with useful example)

Change History (10)

comment:1 Changed 4 years ago by simonpj

Owner: set to nfrisby

comment:2 Changed 4 years ago by simonpj

Thoughts about the wiki page (which is a fantastic start):

  • The "extended consequences" section is great. But could you give a small example of each point? Otherwise it is hard to grok.

There are lots of other places where an example would be extremely useful. To take just one "If an LNE function f occurs in another LNE function g and we only lift g, then it will spoil f: and it will no longer be an LNE, because it will now be an argument to llf_g."

  • I recall that you implemented a more-or-less complex analysis to try to get the good consequences without the bad ones. Is it worth sketching what the analysis does? The complexity here is my principal worry about the whole thing.
  • Small point: the $(theRHS 'a 'b) notation is more distracting than helpful. I'd use something more informal (..a...b...).

comment:3 Changed 2 years ago by simonpj

Description: modified (diff)

comment:4 Changed 2 years ago by bgamari

Cc: bgamari added
Description: modified (diff)

comment:5 Changed 2 years ago by bgamari

Description: modified (diff)

comment:6 Changed 2 years ago by bgamari

Wiki Page: LateLamLift

comment:7 Changed 2 years ago by simonpj

Description: modified (diff)

comment:8 Changed 2 years ago by thomie

Type of failure: None/UnknownRuntime performance bug

comment:9 Changed 11 months ago by simonpj

Cc: kavon added

comment:10 Changed 5 days ago by sgraf

Note: See TracTickets for help on using tickets.