| 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.
|