A Framework for Unrestricted Whole-Program Optimization
- Spyridon Triantafyllis | Princeton University
In current compilers, the vast majority of optimization routines operates within procedure boundaries. Since individual procedures do not usually present the ideal scope to optimization, significant performance enhancement opportunities are left unrealized. Although aggressive inlining and interprocedural analysis can alleviate this problem, these can be applied only sparingly, so as to avoid excessive code growth and compile-time dilation. Furthermore, the compiler’s ability to exploit optimization opportunities across procedures is constrained by the need to maintain the program’s procedure-based structure.
In order to eliminate these restrictions, this talk proposes a novel compilation framework called Procedure Boundary Elimination (PBE). By generalizing interprocedural analysis algorithms and utilizing appropriate intermediate representations, PBE enables all optimization and analysis routines to operate freely across procedure boundaries. This enables the compiler to reorganize the program into arbitrarily shaped interprocedural compilation units, according to its compile-time and optimization needs. By using the proper encapsulation techniques, PBE allows each unit thus selected to be analyzed and optimized in isolation, thereby eliminating the scalability problems of traditional interprocedural optimization. Finally, the PBE framework leverages both existing and novel targeted code duplication techniques, so as to achieve the specialization benefits of inlining while avoiding unnecessary code growth. Overall, PBE achieves a superset of the benefits of inlining and traditional interprocedural optimization, while limiting their associated costs.
Speaker Details
Spyridon Triantafyllis is currently a Ph.D. candidate at the Computer Science Department of Princeton University, expected to graduate by August 2005. He is part of the Liberty Research Group, led by Prof. David I. August. Spyridon has obtained a M.A. degree in Computer Science from Princeton University and a B.Eng. degree in Electrical and Computer Engineering from the National Technical University of Athens, Greece. He has been honored with an Intel Foundation Graduate Fellowship for the current academic year and with a Best Paper Award at the 2003 Conference on Code Generation and Optimization. His research interests lie in the general areas of compiler optimization, program analysis, and runtime performance monitoring.