Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

LambdaSplitting: A HigherOrder Approach to CrossModule Optimizations Matthias Blume Andrew W. Appel

Summary: Lambda­Splitting: A Higher­Order Approach to Cross­Module Optimizations
Matthias Blume Andrew W. Appel
Princeton University, April 2, 1997
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 an­
other. We describe---and implement---the algorithm as transfor­
mations on #­calculus. Our inliner interacts well with separate
compilation and is e#cient, robust, and practical enough for ev­
eryday use in the SML/NJ compiler. Inlining improves perfor­
mance by 4--8% on existing code, and makes it possible to use
much more data abstraction by consistently eliminating penalties
for modularity.
1 Introduction
Abstraction and modular design of software promote clarity
and provide clear lines along which large projects can be
subdivided. But one often pays a large performance penalty
for using abstraction. Cross­module inlining can bridge the


Source: Appel, Andrew W. - Department of Computer Science, Princeton University


Collections: Computer Technologies and Information Sciences