Publication Data
Lightweight Feedback-Directed Cross-Module Optimization
Abstract: Cross-module inter-procedural compiler optimization (IPO)
and Feedback-Directed Optimization (FDO) are two important compiler techniques
delivering solid performance gains. The combination of IPO and FDO delivers peak
performance, but also multiplies both techniques' usability problems. In this paper, we
present LIPO, a novel static IPO framework, which integrates IPO and FDO. Compared to
existing approaches, LIPO no longer requires writing of the compiler's intermediate
representation, eliminates the link-time inter-procedural optimization phase entirely,
and minimizes code re-generation overhead, thus improving scalability by an order of
magnitude. Compared to an FDO baseline, and without further specific tuning, LIPO
improves performance of SPEC2006 INT by 2.5%, and of SPEC2000 INT by 4.4%, with up to
23% for one benchmarks. We confirm our scalability results on a set of large industrial
applications, demonstrating 2.9% performance improvements on average. Compile time
overhead for full builds is less than 30%, incremental builds take a few seconds on
average, and storage requirements increase by only 24%, all compared to the FDO
baseline.
