The SUIF Directory Organization
Source directories at the top level.
- suif/suif2b - Holds practically all the source
codes.
- driverscripts - Scripts to generate the standalone programs.
- pass_spec_db - A database of specifications of passes to be supplied
to the pass_driver.
Generated directories at the top level.
- 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.
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
familiar with.
Table of Contents
-
basesuif
-
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
front end
-
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
-
common
- Basic data structures used in basesuif and tools
-
extratypes
- Basic data structures not used in basesuif
-
utils
- Useful utilities
-
cfeutils - Utilities for C front end nodes (cfenodes)
-
suifversion1support
-
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
passes
-
mark_lib - Collects information about external libraries for
interprocedural analyses.
-
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
hoof files
-
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