Demystifying GCC
Under the Hood of the GNU Compiler Collection
(An OOPSLA 2006 Tutorial)
Resources for tutorial participants:
Useful links:
- GCC home page
- Wikipedia entry for GCC, containing historical and overview information etc.
- The GCC wiki, containing lots of good technical information about GCC, plans for the future, etc.
- Steven Muchnick's book on compiler design and implementation, with a lot of great stuff about optimization and other advanced topics. Buy it. Read it. Love it. (Though if you get the same printing I have, I recommend you check out the errata.)
- Speaking of textbooks, you may also want to check out Engineering a Compiler by Cooper and Torczon if you need to brush up on your parsing theory and other compiler topics. I've heard great things about it, but I don't have it myself. (Errata.)
- Static single assignment (SSA) paper: Cytron et al. Efficiently computing static single assignment form and the control dependence graph.
- McCAT paper (using SIMPLE, on which GIMPLE is based): Hendren et al. Designing the McCAT Compiler Based on a Family of Structured Intermediate Representations.
- Paper on GCC IR: Merrill. GENERIC and GIMPLE: A New Tree Representation for Entire Functions.
- Paper on retargettable YC compiler and its use of RTL, machine descriptions, and instruction matching: Davidson and Fraser. Code selection through object code optimization.
- Bowen Alpern et al. Efficient Implementation of Java Interfaces: Invokeinterface Considered Harmless
- (Old) paper by Hans-J. Boehm describing various aspects of the Boehm collector: Hans-Juergen Boehm. Space-efficient conservative garbage collection. Even older paper: Hans-Juergen Boehm and Mark Weiser. Garbage collection in an uncooperative environment.
- ELF: Executable and Linkable Format
- The GCC Tree Browser
- Pentium 4 reference
- PowerPC reference
Morgan Deters /
About me /
OpenPGP Public Key /
20 Oct 2006