Lambda-Splitting: A Higher-Order Approach to Cross-Module Optimizations

Matthias Blume, Andrew W. Appel

Research output: Contribution to journalArticle

3 Scopus citations

Abstract

We describe an algorithm for automatic inline expansion across module boudaries 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)
Pages (from-to)112-124
Number of pages13
JournalSIGPLAN Notices (ACM Special Interest Group on Programming Languages)
Volume32
Issue number8
DOIs
StatePublished - Jan 1 1997

All Science Journal Classification (ASJC) codes

  • Software
  • Computer Graphics and Computer-Aided Design

Cite this