Aggressive inlining

Andrew Ayers, Richard Schooler, Robert Gottlieb
1997 Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation - PLDI '97  
Existing research understates the benefits that can be obtained from inlining and cloning, especially when guided by profile information. Our implementation of inlining and cloning yields excellent results on average and very rarely lowers performance. We believe our good results can be explained by a number of factors: inlining at the intermediate-code level removes most technical restrictions on what can be inlined; the ability to inline across files and incorporate profile information
more » ... us to choose better inline candidates; a highquality back end can exploit the scheduling and register allocation opportunities presented by larger subroutines; an aggressive processor architecture benefits from more predictable branch behavior; and a large instruction cache mitigates the impact of code expansion. We describe the often dramatic impact of our inlining and cloning on performance: for example, the implementations of our inlining and cloning algorithms in the HP-UX 10.20 compilers boost SPECint95 performance on a PA8000-based workstation by a factor of 1.32.
doi:10.1145/258915.258928 dblp:conf/pldi/AyersGS97 fatcat:r3elaz3k55hvxlkqabz5we4wly