Publication | Closed Access
A framework for unrestricted whole-program optimization
36
Citations
17
References
2006
Year
Mathematical ProgrammingEngineeringUnrestricted Whole-program OptimizationCompiler TechnologySoftware EngineeringComputational ComplexityConstrained OptimizationSoftware AnalysisProcedure Boundary EliminationFormal VerificationSystems EngineeringConventional Optimization FrameworksParallel ComputingCombinatorial OptimizationCompilersCode SpecializationDynamic CompilationCompiler SupportComputer EngineeringComputer ScienceProgram OptimizationOptimizing CompilerSoftware DesignProgram AnalysisSoftware TestingFormal MethodsParallel ProgrammingLinear Programming
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1