 
Summary: Generalizations of the SethiUllman algorithm for register allocation
Andrew W. Appel
Kenneth J. Supowit+
Department of Computer Science
Princeton University
Princeton, NJ 08544
March 31, 1986
revised Sept 24, 1986
ABSTRACT
The SethiUllman algorithm for register allocation finds an optimal ordering of a
computation tree. Two simple generalizations of the algorithm increase its applicability
without significantly increasing its cost.
Keywords: Register allocation, Code generation, Code optimization, Expression
trees
Introduction
Certain computations can be appropriately modelled as computation trees. A computation tree has con
stant values as its leaves, and the internal nodes are given values inductively as specified arithmetic func
tions of the values of their children. For example, the computation tree for the expression
(3 + (4 + 3) ×(5 + 6)) is
+
