When we do an analysis of a program, we gain certain information. We can then use that information in later analyses. For example, we've seen how constant propagation can be used to eliminate edges that will never be traversed and thus allow computations to be moved out of loops. Sometimes, however, two analyses depend on each other in such a way that they cannot effectively be carried out separately.
Propagate constants Assume that the work list is operated like a stack.
We first run through all of the computations in order, as though they had been on the work list. After the first complete scan, we take program points off of the work list. Combined calculation Assume that the work list is operated like a stack. We first run through all of the computations in order, as though they had been on the work list. After the first complete scan, we take program points off of the work list.