Class Summary |
BlockCountSpillCost |
An object that returns an estimate of the relative cost of spilling a
symbolic register, based on basic block frequencies. |
BrainDeadSpillCost |
An object that returns an estimate of the relative cost of spilling a
symbolic register. |
Coalesce |
Utility to help coalesce registers. |
CoalesceGraph |
This class represents a graph, where
the nodes are registers
the edge weights represent affinities between registers. |
CoalesceGraph.Edge |
|
CoalesceGraph.Node |
|
CoalesceMoves |
Coalesce registers in move instructions where possible. |
ExpandCallingConvention |
Phase for expanding the calling convention |
GenericRegisterPreferences |
This class helps manage register preferences for coalescing and
register allocation. |
GenericRegisterRestrictions |
An instance of this class provides a mapping from symbolic register to
a set of restricted registers. |
GenericRegisterRestrictions.RestrictedRegisterSet |
An instance of this class represents restrictions on physical register
assignment. |
GenericStackManager |
Class to manage the allocation of the "compiler-independent" portion of
the stackframe. |
GenericStackManager.ScratchRegister |
Class to represent a physical register currently allocated as a
scratch register. |
LinearScan |
Main driver for linear scan register allocation. |
LinearScan.ActiveSet |
"Active set" for linear scan register allocation. |
LinearScan.BasicInterval |
Implements a basic live interval (no holes), which is a pair
begin - the starting point of the interval
end - the ending point of the interval
Begin and end are numbers given to each instruction by a numbering pass. |
LinearScan.CompoundInterval |
Implements a live interval with holes; ie; a list of basic live
intervals. |
LinearScan.IncreasingEndMappedIntervalSet |
Implements a set of Basic Intervals, sorted by end number. |
LinearScan.IncreasingEndMappedIntervalSet.EndComparator |
|
LinearScan.IncreasingStartIntervalSet |
Implements a set of Basic Intervals, sorted by start number. |
LinearScan.IncreasingStartIntervalSet.StartComparator |
|
LinearScan.IncreasingStartMappedIntervalSet |
Implements a set of Basic Intervals, sorted by start number. |
LinearScan.IncreasingStartMappedIntervalSet.StartComparator |
|
LinearScan.IntervalAnalysis |
phase to compute linear scan intervals. |
LinearScan.IntervalSet |
|
LinearScan.LinearScanPhase |
|
LinearScan.LinearScanState |
|
LinearScan.MappedBasicInterval |
A basic interval contained in a CompoundInterval. |
LinearScan.RegisterRestrictionsPhase |
A phase to compute register restrictions. |
LinearScan.SpillCode |
Insert Spill Code after register assignment. |
LinearScan.SpillLocationInterval |
The following represents the intervals assigned to a particular spill
location |
LinearScan.SpillLocationManager |
The following class manages allocation and reuse of spill locations. |
LinearScan.UpdateGCMaps1 |
Update GC maps after register allocation but before inserting spill
code. |
LinearScan.UpdateGCMaps2 |
Update GC Maps again, to account for changes induced by spill code. |
LinearScan.UpdateOSRMaps |
Update GC maps after register allocation but before inserting spill
code. |
LiveIntervalElement |
This class defines a LiveInterval node created by Live Variable analysis
and used in Linear Scan. |
PrologueEpilogueCreator |
This class is a phase that inserts prologues and epilogues |
RegisterAllocator |
Driver routine for register allocation |
RegisterAllocator.RegisterAllocPreparation |
|
RegisterAllocatorState |
The register allocator currently caches a bunch of state in the IR;
This class provides accessors to this state. |
ScratchMap |
This class holds information on scratch register usage, needed to
adjust GC Maps. |
ScratchMap.Interval |
Super class of physical and symbolic intervals |
ScratchMap.PhysicalInterval |
An object that represents an interval where a physical register's
contents are evicted so that the physical register can be used as a
scratch. |
ScratchMap.SymbolicInterval |
An object that represents an interval where a symbolic register
resides in a scratch register. |
SimpleSpillCost |
An object that returns an estimate of the relative cost of spilling a
symbolic register. |
SpillCostEstimator |
An object that returns an estimate of the relative cost of spilling a
symbolic register. |