Essential Abstractions in GCC

A tutorial conducted in conjuction with CGO 2011, Chamonix, France


  • Motivation

    The GNU Compiler collection is a compiler generation framework which constructs a compiler for a given architecture by reading the machine descriptions for that architecture. This framework is practically very useful as evidenced by the existence of several dozens of targets for which compilers have been created using GCC. These compiler are routinely used by millions of users for their regular compilation needs. While a deployment of GCC on the default parameters is easy, any other customization, experimentation and modification of GCC is difficult and requires a high amount of expertise and concentrated efforts.  In this tutorial we describe some carefully chosen abstractions that help one to understand the retargetability mechanism and the architecture of the compiler generation framework of GCC and relate it to a generated compiler.

  • List of topics covered

    S.No. Topics Slides
    1. Introductory Remarks Download
    2. First Level Gray Box Probing Download
    3. GCC Configuration and Building Download
    4. Module Binding Mechanisms and Control Flow in GCC Download
    5. Introduction to Machine Descriptions Download
    6. Constructing Spim Machine Descriptions Download
    7. More Details of Machine Descriptions Download
    8. The Retargetability Model of GCC Download
    9. Concluding Remarks Download

Target Audience

People interested in using GCC for their research as well as people interested in contributing to GCC will benefit from this tutorial. It is expected that this tutorial will bring down their ramp up period into GCC from several frustrating months to a few stimulating weeks. This tutorial will also be useful for people who are interested in relating class room concepts of compilation to a large scale practical compiler which is widely used.

Special Requirements

This tutorial is a lecture based tutorial and hence it is not necessary for the audience to bring a laptop. Soft copies of the slides will be made available on this page well in advance.


Uday P. Khedker (

Presenter's Bio

Uday Khedker finished Ph.D. in Computer Science & Engg. From IIT Bombay in 1995 and taught at the Department of Computer Science at Pune University from 1984 to 2001. Since then, he is with IIT Bombay where currently he is Professor of Computer Science & Engg.

His areas of interest are Programming Languages and Compilers and he specialises in data flow analysis and its applications to code optimization. A recent research thrust involves cleaning up the GNU Compiler Collection (GCC) to simplify its deployment, retargetting, and  enhancements. Other goals include increasing its trustworthiness as well as the quality of generated code. He has published papers in leading journals and conferences, has contributed chapters in Compiler Design Handbook and has authored a book titled “Data Flow Analysis: Theory and Practice”. He has also worked very closely with the industry.


Tested on Firefox version 3.0.8 and above     |    Site designed and maintained by GRC    |    © 2013, GCC Resource Center