The SUIF 1.x Compiler System
The SUIF (Stanford University Intermediate Format) 1.x compiler, developed
by the Stanford Compiler Group, is a free infrastructure designed to
support collaborative research in optimizing and parallelizing
Table of Contents
- Overview of the SUIF Compiler
- The SUIF Software Distribution
- The SUIF Documentation
- SUIF-related Mailing Lists
- Contributions by Other Research Groups
Research using SUIF (at Stanford and elsewhere)
Independently developed compilation passes work together
by using a common intermediate format to represent programs.
The system includes the following components:
- Fortran and C front ends -> SUIF
- SUIF -> Fortran and C
- Data dependence analysis
- A basic parallelizer
- A loop-level locality optimizer
- A visual SUIF code browser
Suif 126.96.36.199 Release
This is a release of the SUIF1 retroactive bug-fixes distribution 188.8.131.52.
As you may know, the SUIF group has moved its development effort on from
SUIF1 to SUIF Version 2. Some of you may have obtained the basesuif-2.0.0.alpha.38
release, which contained a version of SUIF1 modified to work in concert
with an early release of SUIF2; various symbols were renamed "suif1_*"
to not conflict with the same name in SUIF2. Since the naming scheme has
changed in more recent SUIF2 code, this conflict is no longer a problem.
We undid the name changes so that the only name changes visible to the
user should be "libsuif1" and "suif1.h". This release should work with
the new release of SUIF2. Conversion passes are already working. See the
Suif 1x web pages for more documentation.
We have incorporated all the bug fixes people sent us about 1.3.0.[1-4],
plus a few more. Please let us know if you find more problems. If it is
a machine configuration problem, please try to figure out some patches
yourself, since we don't have a lot of time to polish this more. Thanks.
The base SUIF system, required before any of the other packages can
be used. It untars itself into a directory called "suifhome".
These should be untarred in the directory suifhome/src.
Please mail bugs and/or fixes to firstname.lastname@example.org for discussion and review by those still using SUIF 1.
A library built on top of SUIF providing another interface for building
SUIF code; requires basesuif.
The basic SUIF parallelization system; requires basesuif and suifbuilder.
A SUIF-to-Fortran converter, to convert to a combination of Fortran
and C to improve performance over conversion to C alone; requires basesuif.
A call-graph library for SUIF; requires baseparsuif and basesuif.
The SUIF Visual Browser: a graphical user interface to view SUIF files
and their relations to input and output source code; requires suifcallgraph,
baseparsuif, and basesuif, and also requires TCL/TK, a pair of packages
that are available independently of SUIF.
An introduction to construction of SUIF passes in ``cookbook'' form,
going through several examples; requires basesuif, suifbuilder, and baseparsuif.
A simplified interface for SUIF for teaching compiler courses; requires
basesuif. Most likely broken, since this was tied to the SUIF2.0.0.alpha.38
suif1_* renaming and hasn't been tested recently.
Verilog transformations built on SUIF. An earlier post-mortem package.
Click here to see who wrote
- An Overview of the SUIF
- SUIF Parallelizing Compiler
How to compile and run parallel programs with SUIF
- The SUIF Cookbook
A guide to creating SUIF passes - a series of examples
- The SUIF Library
A set of core routines for manipulating SUIF data structures
- The BUILDER Library
A tool to construct or modify SUIF code within the SUIF compiler
- The SUIFMATH Library
A set of routines for the manipulation of matrices and linear inequalities
- The DEPENDENCE Library
A set of routines for analyzing dependences between array references
- The TRANSFORM Library
A set of general loop transformation routines
- The Simple-SUIF Compiler
A simple interface to SUIF for compiler courses
- The SUIF Man Pages
Information on the SUIF mailing lists can be found
MachSUIF: a SUIF subsystem to support machine-dependent optimization
Branch instrumentation in SUIF
A SPARC code generator
TCOVSUIF profiling system for SUIF on Sparc workstations.
Streams-C: Stream-Oriented C Programming for FPGAs
Proceedings of the SUIF Compiler Workshops.
Web pages of research groups using SUIF.