TY - GEN
T1 - A framework for unrestricted whole-program optimization
AU - Triantafyllis, Spyridon
AU - Bridges, Matthew J.
AU - Raman, Easwaran
AU - Ottoni, Guilherme
AU - August, David I.
N1 - Copyright:
Copyright 2011 Elsevier B.V., All rights reserved.
PY - 2006
Y1 - 2006
N2 - Procedures have long been the basic units of compilation in conventional optimization frameworks. However, procedures are typically formed to serve software engineering rather than optimization goals, arbitrarily constraining code transformations. Techniques, such as aggressive inlining and interprocedural optimization, have been developed to alleviate this problem, but, due to code growth and compile time issues, these can be applied only sparingly. This paper introduces the Procedure Boundary Elimination (PBE) compilation framework, which allows unrestricted whole-program optimization. PBE allows all intra-procedural optimizations and analyses to operate on arbitrary subgraphs of the program, regardless of the original procedure boundaries and without resorting to inlining. In order to control compilation time, PBE also introduces novel extensions of region formation and encapsulation. PBE enables targeted code specialization, which recovers the specialization benefits of inlining while keeping code growth in check. This paper shows that PBE attains better performance than inlining with half the code growth.
AB - Procedures have long been the basic units of compilation in conventional optimization frameworks. However, procedures are typically formed to serve software engineering rather than optimization goals, arbitrarily constraining code transformations. Techniques, such as aggressive inlining and interprocedural optimization, have been developed to alleviate this problem, but, due to code growth and compile time issues, these can be applied only sparingly. This paper introduces the Procedure Boundary Elimination (PBE) compilation framework, which allows unrestricted whole-program optimization. PBE allows all intra-procedural optimizations and analyses to operate on arbitrary subgraphs of the program, regardless of the original procedure boundaries and without resorting to inlining. In order to control compilation time, PBE also introduces novel extensions of region formation and encapsulation. PBE enables targeted code specialization, which recovers the specialization benefits of inlining while keeping code growth in check. This paper shows that PBE attains better performance than inlining with half the code growth.
KW - Inlining
KW - Interprocedural analysis
KW - Interprocedural optimization
KW - Path-sensitive analysis
KW - Procedure unification
KW - Region encapsulation
KW - Region formation
KW - Region-based compilation
KW - Specialization
KW - Superblock
KW - Whole-program analysis
KW - Whole-program optimization
UR - http://www.scopus.com/inward/record.url?scp=33746072606&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=33746072606&partnerID=8YFLogxK
U2 - 10.1145/1133255.1133989
DO - 10.1145/1133255.1133989
M3 - Conference contribution
AN - SCOPUS:33746072606
SN - 1595933204
SN - 9781595933201
T3 - Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
SP - 61
EP - 71
BT - PLDI 2006 - Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation
T2 - PLDI 2006 - 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation
Y2 - 10 June 2006 through 16 June 2006
ER -