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
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.
|
| Enum | Description |
|---|---|
| EnterSSA.PhiTypeInformation |