Inlining on SSA form
- Doing IPA on SSA makes it easier and more accurate. Also it makes possible to do early optimization cheaply.
Oracular Optimization
Personnel
- Jan Hubicka
Delivery Date
- The implementation on IPA branch is ready now. I would like to see some help from alias analysis person to help me clean up some parts.
Benefits
- Better IPA analysis
- Cleaner design, fewer limitations on pass ordering
Problems
- SSA form might be more memory intensive. However with cleanups I don't see any memory consumption increase on combine.c. Overall IPA branch allocate bit more memory but it is hopefully down in noise so it don't show up as slowdonw in SPEC compilation and can be reduced (see bellow).
Dependencies
- SSA inliner cleanups
Modifications Required
- Most intrusive part is change making it possible to do SSA form on multiple function bodies at once. This is similar to multiple CFGs form we did last release cycle. Major anoyance is comming from variable annotations that are now shared for static variables while we expect them to be local. Luckilly very little of annotations needs to survive across different passes (this also means that there is no real need to throw away all the memory globally as we do now
- and we should get annotations only locally for each function) and I've moved that into function