Package org.jikesrvm.compilers.opt.ssa

Class Summary
EnterSSA This compiler phase constructs SSA form.
GCP Global code placement comes in two flavours.
GCP.GCPFinalization This class sets up the IR state prior to entering SSA for GCP
GCP.GCPPreparation This class sets up the IR state prior to entering SSA for GCP
GlobalCSE This class provides global common sub expression elimination.
GlobalValueNumber This class implements global value numbering ala Alpern, Wegman and Zadeck, PoPL 88.
GlobalValueNumberState This class holds the results of global value numbering.
GVCongruenceClass This class represents a congruence class for global value numbering.
HeapVariable<T> An HeapVariable represents a heap variable for heap array SSA form.
IndexPropagation Perform index propagation (see Fink, Knobe && Sarkar, SAS 2000) This analysis computes for each Array SSA variable A, the set of value numbers V(k) such that location A[k] is "available" at def A, and thus at all uses of A We formulate this as a data flow problem as described in the paper.
IndexPropagation.ArrayCell An ArrayCell is a lattice cell for the index propagation problem, used in redundant load elimination for one-dimensional arrays.
IndexPropagation.ObjectCell An ObjectCell is a lattice cell for the index propagation problem, used in redundant load elimination for fields.
IndexPropagationSystem Represents a set of dataflow equations used to solve the index propagation problem.
IndexPropagationSystem.MeetOperator Represents a MEET function (intersection) over Cells.
IndexPropagationSystem.UpdateUseArrayOperator Represents an UPDATE_USE function over two ArrayCells.
IndexPropagationSystem.UpdateUseObjectOperator Represents an UPDATE_USE function over two ObjectCells.
LeaveSSA This compiler phase translates out of SSA form.
LeaveSSA.Copy An instance of this class represents a pending copy instruction to be inserted.
LeaveSSA.VariableStacks This class provides an abstraction over stacks of names for registers.
LICM This class does loop invariant code movement.
LiveRangeSplitting Perform live-range splitting.
LiveRangeSplitting.LiveRangeSplittingPhase  
LiveRangeSplitting.LiveRangeSplittingPhase.BasicBlockPair A utility class to represent an edge in the CFG.
LiveRangeSplitting.RenamePreparation This class sets up the IR state prior to entering SSA.
LoadElimination This class implements the redundant load elimination by Fink, Knobe && Sarkar.
LoadElimination.GVNPreparation This class sets up the IR state prior to entering SSA for GVN.
LoadElimination.LoadEliminationPreparation This class sets up the IR state prior to entering SSA for load elimination
LoadElimination.LoadEliminator  
LoadElimination.UseRecord  
LoadElimination.UseRecordSet  
LoopVersioning This optimisation works from the outer most loop inward, optimising loops that conform to being regular AnnotatedLSTNodes.
PiNodes This pass inserts PI nodes (Effectively copies) on branch edges, to introduce new names for analysis
RedundantBranchElimination Redundant branch elimination based on SSA form, global value numbers, and dominance relationships.
RedundantBranchElimination.EnsureSSA  
RedundantBranchElimination.RBE  
SSA This module holds utility functions for SSA form.
SSADictionary An SSADictionary structure holds lookaside information regarding Heap Array SSA form for an IR.
SSADictionary.AllInstructionEnumeration This class implements an Enumeration over all instructions for a basic block.
SSADictionary.HeapKey<T> This class represents the name of a heap variable in the heap array SSA form.
SSAOptions This module defines parameters to the SSA construction process.
SSATuneUp This phase puts the IR in SSA form and performs a set of simple optimizations to clean up.
SSATuneUp.FoldingDriver This class drives expression folding.
SSATuneUp.TuneUpPreparation This class sets up the IR state prior to entering SSA.
UniformlyGeneratedGVN This class implements index equivalence via global value numbering and 'uniformly generated expressions'.
ValueGraph This class implements the value graph used in global value numbering a la Alpern, Wegman and Zadeck.
ValueGraphEdge This class implements an edge in the value graph used in global value numbering ala Alpern, Wegman and Zadeck.
ValueGraphParamLabel Represent a value that is a parameter
ValueGraphVertex This class implements a vertex in the value graph used in global value numbering ala Alpern, Wegman and Zadeck.
ValueNumberPair Represents a pair of value numbers.