The src/ssa Directory

Namespace ssa, delivered for TC-6. Implementation of Static Single Assignment and various optimizations.

File: local.am (src/ssa/)

The Makefile configuration relative to the src/ssa/ directory. It is responsible for the integration into the libtc library with everything exported from the ssa module.

File: libssa.* (src/ssa/)

The interface of the ssa module. It exports the, dominator_graph_dump, insert_phinodes, rename_variables and ssa procedures, which respectively dump the Dominator graph, insert Phi-Nodes, rename variables according to SSA, and convert the code back to LIR.

File: tasks.* (src/ssa/)

The tasks related to the ssa module (see: The src/task Directory).


File: phi-node.* (src/ssa/)

The Phi-Node implementation.

File: dominator-gen.* (src/ssa/)

The Dominator Tree implementation. It computes the dominator of each node in the Basic Block graph. Used to compute the location of each Phi-Node.

File: lifter.* (src/ssa/)

The Lifter implementation. It contains the logic for the ssa module and optimization passes.