Opened 5 years ago

Last modified 9 months ago

#9476 closed feature request

Implement late lambda-lifting — at Version 5

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

Description (last modified by bgamari)

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

  • Branch in GHC repo: wip/llf
  • Related tickets

Change History (5)

comment:1 Changed 5 years ago by simonpj

Owner: set to nfrisby

comment:2 Changed 5 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 4 years ago by simonpj

Description: modified (diff)

comment:4 Changed 4 years ago by bgamari

Cc: bgamari added
Description: modified (diff)

comment:5 Changed 4 years ago by bgamari

Description: modified (diff)
Note: See TracTickets for help on using tickets.