Overview of Global Optimization
A globally optimizing compiler will
perform the following operations:
- Perform interval analysis and compute the derived graphs.
- Order nodes using an ordering algorithm to find dominators.
- Find basic available and busy information for blocks.
- Solve boolean equations to get available and busy information for
- Replace common subexpressions by corresponding compiler variables.
- Assign registers using graph coloring.
The information provided by data flow analysis provides a special-purpose
proof that the optimized program is correct (produces the same answers).