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 language | English (US) |
|---|---|
| Pages | 112-124 |
| Number of pages | 13 |
| State | Published - 1997 |
| Event | Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, ICFP - Amsterdam, Neth Duration: Jun 9 1997 → Jun 11 1997 |
Other
| Other | Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, ICFP |
|---|---|
| City | Amsterdam, Neth |
| Period | 6/9/97 → 6/11/97 |
All Science Journal Classification (ASJC) codes
- Software
Fingerprint
Dive into the research topics of 'Lambda-splitting: A higher-order approach to cross-module optimizations'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver