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