Architecture for a Next-Generation GCC
Chris Lattner and Vikram Adve

Abstract:

This paper presents a design and implementation of a whole-program interprocedural optimizer built in the GCC framework. Through the introduction of a new language-independent intermediate representation, we extend the current GCC architecture to include a powerful mid-level optimizer and add link-time interprocedural analysis and optimization capabilities. This intermediate representation is an SSA-based, low-level, strongly-typed, representation which is designed to support both efficient global optimizations and high-level analyses. Because most of the program is available at link-time, aggressive ``whole-program'' optimizations and analyses are possible, improving the time and space requirements of compiled programs. The final proposed organization of GCC retains the important features which make it successful today, requires almost no modification to either the front- or back-ends of GCC, and is completely compatible with user makefiles.

Published:

"Architecture For a Next-Generation GCC", Chris Lattner & Vikram Adve,
First Annual GCC Developers' Summit, Ottawa, Canada, May 2003.

Download:

Presentation:

BibTeX Entry:

  @InProceedings{LattnerAdve:GCCSummit03,
    Author    = {Chris Lattner and Vikram Adve},
    Title     = "{Architecture for a Next-Generation GCC}",
    Booktitle = "{Proc. First Annual GCC Developers' Summit}",
    Address   = {Ottawa, Canada},
    Month     = {May},
    Year      = {2003},
    URL       = {http://llvm.cs.uiuc.edu/pubs/2003-05-01-GCCSummit2003.html}
  }