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 thelibtc
library with everything exported from thessa
module.
File: libssa.* (src/ssa/)
The interface of the
ssa
module. It exports the,dominator_graph_dump
,insert_phinodes
,rename_variables
andssa
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 thessa
module and optimization passes.