| Classes | |
|---|---|
| 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 | IndexPropagation.java
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.UpdateDefArrayOperator | Represents an UPDATE_DEF function over two ArrayCells. |
| IndexPropagationSystem.UpdateDefObjectOperator | Represents an UPDATE_DEF function over two ObjectCells. |
| 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 the job. |
| LiveRangeSplitting | Perform live-range splitting. |
| LiveRangeSplitting.LiveRangeSplittingPhase | No description provided. |
| 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 | No description provided. |
| LoadElimination.UseRecord | No description provided. |
| LoadElimination.UseRecordSet | No description provided. |
| 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 | No description provided. |
| RedundantBranchElimination.RBE | No description provided. |
| 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 | utility class: represents a pair of value numbers. |