A framework for unrestricted whole-program optimization

Spyridon Triantafyllis, Matthew J. Bridges, Easwaran Raman, Guilherme Ottoni, David I. August

Research output: Contribution to journalArticlepeer-review

5 Scopus citations

Abstract

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.

Original languageEnglish (US)
Pages (from-to)61-71
Number of pages11
JournalSIGPLAN Notices (ACM Special Interest Group on Programming Languages)
Volume41
Issue number6
DOIs
StatePublished - 2006

All Science Journal Classification (ASJC) codes

  • Software
  • Computer Graphics and Computer-Aided Design

Keywords

  • Inlining
  • Interprocedural analysis
  • Interprocedural optimization
  • Path-sensitive analysis
  • Procedure unification
  • Region encapsulation
  • Region formation
  • Region-based compilation
  • Specialization
  • Superblock
  • Whole-program analysis
  • Whole-program optimization

Fingerprint

Dive into the research topics of 'A framework for unrestricted whole-program optimization'. Together they form a unique fingerprint.

Cite this