Package coins.ssa

Class Summary
AddressAnalyze This class is to keep the order of FRAME or STATIC node.
AggregateInstructions Aggregate LIR trees.
There are some optimizations to break LIR trees many pieces.
BackTranslateFromSsa The back translation from SSA form into normal form.
BackTranslateFromSsaBriggs  
BitVector Bit vector for SSA optimization.
ChangeLoopStructure Change the structure of the loop from `while type' into `do-while' type.
Coalescing Coalescing
Perform coalescing proposed by Chaitin after the back translation to normal form.
CommonSubexpressionElimination SSA based common subexpression elimination.
If the common subexpression is valid where in the other expressions, this optimizer replace subexpressions which is used in the other expressions into the temporary variable.
ConcatBlks Concatenate basic blocks.
ConstantPropagation Constant Propagation
This constant propagator considers the condition jumps.
CopyPropagation Copy propagation
Step1:
Find copy assign expressions and store the right side variable of them to hash table as a value.
DDCopyPropagation  
DeadCodeElimination Dead code elimination:
If the expressions which are never used or reached, then these expressions are dead.
DivideExpression Divide expressions into 3 address expression.
Dump Dump the current LIR nodes.
EdgeSplit Split the critical edges.
EmptyBlockElimination Eliminate the empty basic blocks from the current CFG.
GlobalReassociation Global Reassociation.
The technique to address the code shape probrems.
HoistingLoopInvariant Hoisting loop invariant expression to the outside of the loop.
Int  
LirToC The wrapper class of LIR to C.
MemoryAliasAnalyze Analyze the aliases of memory object.
The SSA module have a preliminary alias analysis.
OperatorStrengthReduction Operator Strength Reduction.
This optimizer do the operator strength reduction.
OptionName The String name of optimzers used in the SSA module.
PREQP  
PublicSsa This class is to use SSA module from other optimizers.
RankTable  
RedundantPhiElimination Eliminate the redundant PHI instructions.

The redundant PHI instruction is defined as follows:
1) x=phi(x,x,x) (remove only)
2) x=phi(y,y,y) (regard as `x=y' and do copy propagation)
3) x=phi(y,y,x) (regard as `x=y' and do copy propagation)
SsaDriver The SSA Optimization.
SsaEnvironment The environment of the SSA module.
SsaGraph SSA graph

This class defined the object of the SSA graph.
SsaGraphNode The node of the SSA graph
SsaSymTab The symbol table of SSA variables.
TranslateToSsa Translate to the static single assignment form ( SSA form ).
Util Utilities for the SSA module