On this page...

What is C-Breeze?


Calvin Lin
Sam Guyer
Daniel Jimenez
Teck Bok Tok
Adam Brown
Paul Navratil


Contact us for latest release.


User Guide -- HTML
API Documentation


C Compiler Infrastructure

Department of Computer Sciences
University of Texas at Austin

C-Breeze version 1.1 released.

What is C-Breeze?

C-Breeze is an infrastructure for building C compilers. It is written in C++, and consists of a set of classes for representing a C program as an abstract syntax tree (AST). It includes many support classes for inspecting, manipulating, and analyzing the program in the AST form. We also provide a front end that parses C code (ANSI/ISO 9899-1990 standard) and generates the initial AST.

Building a compiler with C-Breeze

The overall process of building a C-Breeze compiler is as follows:

  1. Download and upack the C-Breeze source.
  2. Fix the Makefile.inc to reflect your local configuration.
  3. Compile the classes to produce libc-breeze.a
  4. Define one or more new compiler Phases.
  5. Compile your new Phases and link against libc-breeze.a to produce an executable.

System requirements

The C-Breeze code itself is quite portable, but the C compilers built using C-Breeze can only compile C89 code. Therefore, C-Breeze compilers must have a C89-compliant preprocessor and C89-friendly system header files. We have found that the following configuration works well:

  • Compile the C-Breeze classes using g++ 3.x
  • Provide gcc 2.95.x (and accompanying header files) for your C-Breeze compiler to use as the preprocessor.
Citing C-Breeze

If you incorporate C-Breeze into your research, please let us know -- and please use the following citation in your publications:

The C-Breeze Compiler Infrastructure
Calvin Lin, Samuel Z. Guyer, Daniel Jimenez
TR-01-43, The University of Texas at Austin, November, 2001.


C-Breeze provides some built-in passes that process C code at various levels:

AST level passes

After initial parsing, C-Breeze represents C programs in a high-level AST form.

CFG/Dismantled level passes

Most analysis and optimization passes use a dismantled form of the AST that resembles a three-address code.

Backend passes

We currently provide an assembly code backend as well as a C-code backend ("unparsing")

Updated on August 27, 2003