The SUIF Directory Organization
Source directories at the top level.
Generated directories at the top level.
- suif/suif2b - Holds practically all the source
- driverscripts - Scripts to generate the standalone programs.
- pass_spec_db - A database of specifications of passes to be supplied
to the pass_driver.
Structure of the suif/suif2b directory is given below.
Additional information on the interfaces are provided in A Guide to Important Interfaces
in SUIF for those common utilities that compiler writers should be
- bin - The binaries of the standalone programs.
- solib - Shared libraries to be loaded dynamically
- include - Include files from different modules are placed into
subdirectories in this common directory so that the path need not be
coded into the source program.
Table of Contents
basicnodes- Basic suif objects
suifnodes - Concrete instruction and statement objects
cfenodes - Nodes for C semantics used for constructing the front end
cpp_osuif - Nodes for C++ semantics used for constructing the
iokernel - object interface: machine-independent I/O
suifkernel - SUIF object interface
suifpasses - Pass building library
typebuilder - SUIF type factory
driver - Driver of the SUIF compiler
suifprinter - Prints SUIF program representation
suifcloning - Cloning subsystem implementation
suiflocation - Finds the line number of a SUIF object
s2c - Converts SUIF to C
- Basic data structures used in basesuif and tools
- Basic data structures not used in basesuif
- Useful utilities
cfeutils - Utilities for C front end nodes (cfenodes)
convertsuif1to2 - Pass to convert suif 1 files to suif 2
convertsuit2to1 - Pass to convert suif 2 files to suif 1
basepasses - Basic passes
linksuif - Link suif files together according to the ANSI C Standard.
transforms - Dismantles high-level SUIF constructs
usefulpasses - Useful utility passes for develop new SUIF
mark_lib - Collects information about external libraries for
suifbrowser - Tool for navigating programs and their representation in SUIF.
tools - Tools for building the compiler.
msc_support - Tool to port the existing source code to Windows.
smgn - Tool for generating SUIF objects using a grammar
genhier - Tool for generating a listing of the class hierarchy from
texec - Tool for running a program within a given time limit
Some useful analyses. The tools and frameworks used to build these
analyses are not documented and maintained and users are not
encouraged to build upon them.
- dataflow - An intraprocedural data flow analysis framework.
This framework contains a few debugged analysis. New analysis should
be written using the NAF framework.
- copyprop - Copy propagation.
- deadcode - Dead code analysis.
- dflowsolver - A data flow solver.
- suif_cfgraph - Control flow graph.
- super_graph - Control flow graph with regions nodes
representing compound control construct.
- ipanalysis - A collection of interprocedural analysis
- absloc - Uses the alias information to partition all memory
accesses into equivalence classes.
- ecrnodes - Definition of the nodes for the analysis in ecr_alias.
- ecr_alias - An implementation of the Steensgaard's
flow-insensitive and context-insensitive alias analysis.
- call_graph - Generates a call graph.
- ssa - Interprocedural static single assignment form.
- statement_number - Number the statements in the program.
doc - Documentation of the SUIF system