Jeffrey D. Ullman Stanford University. 2 Generalizes: 1.Moving loop-invariant computations outside the loop. 2.Eliminating common subexpressions. 3.True.