Advanced compiler design and implementation
This flowchart represents a recommended order for performing optim izations in an aggres sive optimizing compiler. Other orders are possible, and the exam ples o f real-world compilers in Chapter 21 present several alternatives, though none o f them includes all o f the optim iza tions in this diagram. The letters at the left in the diagram correspond to the levels o f code appropriate for the corresponding optim izations. The correspondence between letters and code levels is as follows:. These optim izations typically are applied either to source code or to a high-level intermediate code that preserves loop structure and the sequence in which operations are performed and that has array accesses in essentially their source-code form.