Architecture for a Next-Generation GCC
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}
}