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

Matthias Blume, Andrew Wilson Appel

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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)
Title of host publicationProceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP
Editors Anon
PublisherACM
Pages112-124
Number of pages13
StatePublished - Jan 1 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

  • Computer Science(all)

Cite this

Blume, M., & Appel, A. W. (1997). Lambda-splitting: A higher-order approach to cross-module optimizations. In Anon (Ed.), Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP (pp. 112-124). ACM.