public final class TraceLinearScan extends LinearScan
| Modifier and Type | Class and Description |
|---|---|
static class |
TraceLinearScan.Options |
LinearScan.BlockData| Modifier and Type | Field and Description |
|---|---|
private TraceBuilder.TraceBuilderResult<?> |
traceBuilderResult |
DOMINATOR_SPILL_MOVE_ID| Constructor and Description |
|---|
TraceLinearScan(TargetDescription target,
LIRGenerationResult res,
LIRGeneratorTool.SpillMoveFactory spillMoveFactory,
RegisterAllocationConfig regAllocConfig,
List<? extends AbstractBlockBase<?>> sortedBlocks,
TraceBuilder.TraceBuilderResult<?> traceBuilderResult) |
| Modifier and Type | Method and Description |
|---|---|
protected <B extends AbstractBlockBase<B>> |
allocate(TargetDescription target,
LIRGenerationResult lirGenRes,
List<B> codeEmittingOrder,
List<B> linearScanOrder,
LIRGeneratorTool.SpillMoveFactory spillMoveFactory,
RegisterAllocationConfig registerAllocationConfig) |
protected LinearScanLifetimeAnalysisPhase |
createLifetimeAnalysisPhase() |
protected MoveResolver |
createMoveResolver() |
protected LinearScanResolveDataFlowPhase |
createResolveDataFlowPhase() |
protected LinearScanEliminateSpillMovePhase |
createSpillMoveEliminationPhase() |
void |
printIntervals(String label) |
void |
printLir(String label,
boolean hirValid) |
attributes, beforeSpillMoveElimination, blockAt, blockCount, blockForId, callKillsRegisters, createAssignLocationsPhase, createOptimizeSpillPositionPhase, createRegisterAllocationPhase, getBlockData, getFirstLirInstructionId, getFrameMapBuilder, getLastLirInstructionId, getLIR, getOrCreateInterval, getRegisterAllocationConfig, getRegisters, getSpillMoveFactory, instructionForId, intervalFor, intervals, isProcessed, isVariableOrRegister, liveSetSize, sortedBlocks, sortIntervalsBeforeAllocation, splitChildAtOpId, verifyIntervalsprivate final TraceBuilder.TraceBuilderResult<?> traceBuilderResult
public TraceLinearScan(TargetDescription target, LIRGenerationResult res, LIRGeneratorTool.SpillMoveFactory spillMoveFactory, RegisterAllocationConfig regAllocConfig, List<? extends AbstractBlockBase<?>> sortedBlocks, TraceBuilder.TraceBuilderResult<?> traceBuilderResult)
protected <B extends AbstractBlockBase<B>> void allocate(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, LIRGeneratorTool.SpillMoveFactory spillMoveFactory, RegisterAllocationConfig registerAllocationConfig)
allocate in class LinearScanprotected MoveResolver createMoveResolver()
createMoveResolver in class LinearScanprotected LinearScanLifetimeAnalysisPhase createLifetimeAnalysisPhase()
createLifetimeAnalysisPhase in class LinearScanprotected LinearScanResolveDataFlowPhase createResolveDataFlowPhase()
createResolveDataFlowPhase in class LinearScanprotected LinearScanEliminateSpillMovePhase createSpillMoveEliminationPhase()
createSpillMoveEliminationPhase in class LinearScanpublic void printIntervals(String label)
printIntervals in class LinearScanpublic void printLir(String label, boolean hirValid)
printLir in class LinearScan