See: Description
Class | Description |
---|---|
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
AnnotatedLSTNode s. |
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.
|
Enum | Description |
---|---|
EnterSSA.PhiTypeInformation |