Procedure Boundary Elimination for EPIC Compilers [abstract] (CiteSeerX, PDF)
Spyridon Triantafyllis, Manish Vachharajani, and David I. August
Proceedings of the Second Workshop on Explicitly Parallel
Instruction Computer Architectures and Compiler Technology (EPIC), November 2002.
Procedures are the basic units of compilation in
traditional optimization frameworks. This presents problems to
compilers targeting EPIC architectures, since the limited scope of a
single procedure is usually insufficient for extracting ILP and
identifying enough optimization opportunities. Although inlining can
expand the scope of optimization routines, it is not applicable to all
call sites and can cause excessive code growth, which can in turn
adversely affect cache performance and compile-time resource usage. In
this paper we propose a novel compilation strategy called Procedure
Boundary Elimination (PBE). PBE unifies the whole program into a
single compilation unit, which is then restructured into units better
suited to optimization than the original procedures. A targeted
specialization phase exposes further optimization opportunities while
limiting code growth only to the cases where it is beneficial. Unlike
inlining, PBE can eliminate all procedure calls while avoiding the
cost of excessive code growth.