The SUIF 2 Compiler System
This page contains a guide to the documentation of the SUIF2
system, which is built as part of the National Compiler Infrastructure
project. The SUIF2 representation is completely different from the
SUIF1 representation. The released system includes conversion tools
between the SUIF 1 and SUIF 2 representations to allow passes written
in both systems to work together.
Table of Contents
Overview of the SUIF2 System
An Overview of the
SUIF Compiler Infrastructure
This document introduces the major concepts in the system, namely
It also provides an overview of the SUIF system architecture and
describes the SUIF extensible intermediate representation.
- A module subsystem that allows passes to be composed easily.
- An extensible SUIF representation that allows programmers to extend
the representation without requiring updating the infrastructure.
- Tutorial presentation at the
ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation,
June 2000, Vancouver B.C.
- Overview of the SUIF System, Monica Lam.
- Introduction to the Basic Infrastructure, David Heine.
- Introduction to the MachSUIF Infrastructure, Michael D. Smith.
- Introduction to the OSUIF Infrastructure, Urs Hoelzle and Holger Kienle.
- OSUIF: a Closer Look, Holger Kienle.
- Work in progress
Introduction to SUIF2. (powerpoint, postscript)
Revised version of the tutorial at the
ACM SIGPLAN '99 Conference on Programming Language Design and Implementation,
May 4, 1999, Atlanta GA.
Organization of the SUIF source directories.
high-level description of all the directories to help you find the sources.
Available programs and SUIF passes
The SUIF Programs and Passes
Guide is a document containing a list of the currently released
programs and passes.
The SUIF compiler infrastructure is designed to be modular so as to
facilitate research in compilers. Users can construct a custom
compiler without writing any new code by
combining different standalone programs that communicate using files, and
invoking different passes using the suifdriver program that
operate on program representations in memory.
Writing your own SUIF Pass
Internal SUIF Implementation Documentation