Lambda-splitting: A higher-order approach to cross-module optimizations

Matthias Blume, Andrew W. Appel

Research output: Contribution to conferencePaperpeer-review

5 Scopus citations

Abstract

We describe an algorithm for automatic inline expansion across module boundaries that works in the presence of higher-order functions and free variables; it rearranges bindings and scopes as necessary to move nonexpansive code from one module to another. We describe - and implement - the algorithm as transformations on λ-calculus. Our inliner interacts well with separate compilation and is efficient, robust, and practical enough for everyday use in the SML/NJ compiler. Inlining improves performance by 4-8% on existing code, and makes it possible to use much more data abstraction by consistently eliminating penalties for modularity.

Original languageEnglish (US)
Pages112-124
Number of pages13
StatePublished - 1997
EventProceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, ICFP - Amsterdam, Neth
Duration: Jun 9 1997Jun 11 1997

Other

OtherProceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, ICFP
CityAmsterdam, Neth
Period6/9/976/11/97

All Science Journal Classification (ASJC) codes

  • Software

Cite this