Contributors:
- Daniel Berlin
- Jan Hubica
- Kenneth Zadeck
Delivery Date:
- March 31
Dependencies:
Description:
- 1) Static variable escape analysis. 2) Call side effects determination. 3) Type escape analysis. Determine which types only have values that never escape the compilation unit. 4) Pure/Const function analysis. This replaces the current detection which is done at the RTL level. Doing this early has the benefit of making this information available to more of the compiler. This depends on Jan Hubicka's IPA infrastructure, and on CFG transparent inlining to be able to completely cover the current rtl level analysis. Based on this analysis, the following transformations are also performed:
Removal of certain variables from call clobbered sets (1 & 2).
- Promotion of some static variables into registers (1).
- Improvement of tree-ssa level type based alias analysis (3).
- Improvement of RTL type based alias analysis (3).