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, verifyIntervals
private 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 LinearScan
protected MoveResolver createMoveResolver()
createMoveResolver
in class LinearScan
protected LinearScanLifetimeAnalysisPhase createLifetimeAnalysisPhase()
createLifetimeAnalysisPhase
in class LinearScan
protected LinearScanResolveDataFlowPhase createResolveDataFlowPhase()
createResolveDataFlowPhase
in class LinearScan
protected LinearScanEliminateSpillMovePhase createSpillMoveEliminationPhase()
createSpillMoveEliminationPhase
in class LinearScan
public void printIntervals(String label)
printIntervals
in class LinearScan
public void printLir(String label, boolean hirValid)
printLir
in class LinearScan