Abstract
The introduction of a "loop header" block facilitates the hoisting of loop-invariant code from a loop. In a λ-calculus intermediate representation, which has a notion of scope, this transformation is particularly useful. Loop headers with scope also solve a problem with in-line expansion of recursive functions or loops: if done naively, only the first iteration is inlined. A loop header can encapsulate the loop or recursion for better in-line expansion. This optimization improves performance by about 5% in Standard ML of New Jersey.
Original language | English (US) |
---|---|
Pages (from-to) | 337-343 |
Number of pages | 7 |
Journal | LISP and Symbolic Computation |
Volume | 7 |
Issue number | 4 |
DOIs | |
State | Published - Dec 1994 |
All Science Journal Classification (ASJC) codes
- General Computer Science
Keywords
- compiler
- continuation-passing style
- in-line expansion
- lambda-calculus
- loop header
- optimization