Preserving loop structures
- At the moment, loops are repeatedly analyzed whenever they are needed. This projects aims to enable us to keep the loop structures up-to-date throughout most of the optimizations.
- Zdenek Dvorak
- The code to preserve loops throughout most major optimization passes is ready. The rest of the changes enabling us to preserve loops through large part of tree level optimizations should be finished by November 15, 2006. Extending the lifetime of loop structures afterwards should be implemented incrementally.
- Minor compile time gains due to fewer calls to loop analysis and more reuse of loop-related information expected. Allows using of results of loop-related analyses in later passes, possibly also on RTL. Prevents passes from unknowingly destroying the shape of loops, which decreases effectivity of loop optimizers. Allows passes to use loop structure to guide their decisions, and possibly use it to increase efficiency of analyses.
- Modifications to CFG manipulation functions to also preserve loop structures. Changes to some optimizations that significantly change CFG (jump threading).