Oscar Waddell and R. Kent Dybvig, Fast and effective procedure inlining, Proceedings of the Fourth International Symposium on Static Analysis (SAS '97) Springer-Verlag Lecture Notes in Computer Science 1302, 35--52, September 1997 (bibtex).

Inlining is an important optimization for programs that use procedural abstraction. Because inlining trades code size for execution speed, the effectiveness of an inlining algorithm is determined not only by its ability to recognize inlining opportunities but also by its discretion in exercising those opportunities. This paper presents a new inlining algorithm for higher-order languages that combines simple analysis techniques with demand-driven online transformation to achieve consistent and often dramatic performance gains in fast linear time.