KIT | KIT-Bibliothek | Impressum | Datenschutz

Selective Lambda Lifting

Graf, Sebastian ORCID iD icon; Jones, Simon Peyton


Lambda lifting is a well-known transformation, traditionally employed for compiling functional programs to supercombinators. However, more recent abstract machines for functional languages like OCaml and Haskell tend to do closure conversion instead for direct access to the environment, so lambda lifting is no longer necessary to generate machine code. We propose to revisit selective lambda lifting in this context as an optimising code generation strategy and conceive heuristics to identify beneficial lifting opportunities. We give a static analysis for estimating impact on heap allocations of a lifting decision. Performance measurements of our implementation within the Glasgow Haskell Compiler on a large corpus of Haskell benchmarks suggest modest speedups.

Zugehörige Institution(en) am KIT Lehrstuhl IPD Snelting (Lehrstuhl IPD Snelting)
Publikationstyp Forschungsbericht/Preprint
Publikationsjahr 2019
Sprache Englisch
Identifikator KITopen-ID: 1000122547
Umfang 17 S.
Vorab online veröffentlicht am 28.10.2019
Nachgewiesen in arXiv
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
KITopen Landing Page