Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

Loop Headers in -calculus or CPS Andrew W. Appel

Summary: Loop Headers in -calculus or CPS
Andrew W. Appel
Princeton University
Princeton University
June 15, 1994
As is well known, the introduction of a \loop header" block facilitates the
hoisting of loop-invariant code from a loop. But in a -calculus interme-
diate representation, which has a notion of scope, this transformation is
particularly useful.
Loop headers with scope also solve an old problem with in-line expansion
of recursive functions or loops: if done naively, only the rst 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.
I have previously described [2, pp. 83{92] the in-line expander of the Stan-
dard ML of New Jersey compiler. Its purpose is not merely to avoid function-


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


Collections: Computer Technologies and Information Sciences