public class LinearScanResolveDataFlowPhase extends AllocationPhase
AllocationPhase.AllocationContext
LIRPhase.Options
Modifier and Type | Field and Description |
---|---|
protected LinearScan |
allocator |
Modifier | Constructor and Description |
---|---|
protected |
LinearScanResolveDataFlowPhase(LinearScan allocator) |
Modifier and Type | Method and Description |
---|---|
protected void |
optimizeEmptyBlocks(MoveResolver moveResolver,
BitSet blockCompleted) |
protected void |
resolveCollectMappings(AbstractBlockBase<?> fromBlock,
AbstractBlockBase<?> toBlock,
AbstractBlockBase<?> midBlock,
MoveResolver moveResolver) |
protected void |
resolveDataFlow()
Inserts necessary moves (spilling or reloading) at edges between blocks for intervals that
have been split.
|
protected void |
resolveDataFlow0(MoveResolver moveResolver,
BitSet blockCompleted) |
(package private) void |
resolveFindInsertPos(AbstractBlockBase<?> fromBlock,
AbstractBlockBase<?> toBlock,
MoveResolver moveResolver) |
protected <B extends AbstractBlockBase<B>> |
run(TargetDescription target,
LIRGenerationResult lirGenRes,
List<B> codeEmittingOrder,
List<B> linearScanOrder,
LIRGeneratorTool.SpillMoveFactory spillMoveFactory,
RegisterAllocationConfig registerAllocationConfig) |
run
apply, apply, createName, getName
protected final LinearScan allocator
protected LinearScanResolveDataFlowPhase(LinearScan allocator)
protected <B extends AbstractBlockBase<B>> void run(TargetDescription target, LIRGenerationResult lirGenRes, List<B> codeEmittingOrder, List<B> linearScanOrder, LIRGeneratorTool.SpillMoveFactory spillMoveFactory, RegisterAllocationConfig registerAllocationConfig)
run
in class AllocationPhase
protected void resolveCollectMappings(AbstractBlockBase<?> fromBlock, AbstractBlockBase<?> toBlock, AbstractBlockBase<?> midBlock, MoveResolver moveResolver)
void resolveFindInsertPos(AbstractBlockBase<?> fromBlock, AbstractBlockBase<?> toBlock, MoveResolver moveResolver)
protected void resolveDataFlow()
protected void optimizeEmptyBlocks(MoveResolver moveResolver, BitSet blockCompleted)
protected void resolveDataFlow0(MoveResolver moveResolver, BitSet blockCompleted)