Class | Description |
---|---|
ActiveSet |
"Active set" for linear scan register allocation.
|
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.
|
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.
|
CompoundInterval |
Implements a live interval with holes; i.e. an ordered set of basic live
intervals.
|
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.
|
IncreasingEndMappedIntervalSet |
Implements a set of Basic Intervals, sorted by end number.
|
IncreasingEndMappedIntervalSet.EndComparator |
Imposes an ascending ordering based on the end points of basic intervals.
|
IncreasingStartIntervalSet |
Implements a set of Basic Intervals, sorted by start number.
|
IncreasingStartIntervalSet.StartComparator |
Imposes an ascending ordering based on the start points of basic intervals.
|
IntervalAnalysis |
phase to compute linear scan intervals.
|
IntervalSet | |
LinearScan |
Main driver for linear scan register allocation.
|
LinearScanPhase | |
LinearScanState | |
LiveIntervalElement |
This class defines a LiveInterval node created by Live Variable analysis
and used in Linear Scan.
|
MappedBasicInterval |
A basic interval contained in a CompoundInterval.
|
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.
|
RegisterRestrictionsPhase |
A phase to compute register restrictions.
|
ScratchMap |
This class holds information on scratch register usage, needed to
adjust GC Maps.
|
SimpleSpillCost |
An object that returns an estimate of the relative cost of spilling a
symbolic register.
|
SpillCode |
Insert Spill Code after register assignment.
|
SpillCostEstimator |
An object that returns an estimate of the relative cost of spilling a
symbolic register.
|
SpillLocationInterval |
The following represents the intervals assigned to a particular spill
location
|
SpillLocationManager |
The following class manages allocation and reuse of spill locations.
|
UpdateGCMaps1 |
Update GC maps after register allocation but before inserting spill
code.
|
UpdateGCMaps2 |
Update GC Maps again, to account for changes induced by spill code.
|
UpdateOSRMaps |
Update GC maps after register allocation but before inserting spill
code.
|