public class LinearScanResolveDataFlowPhase extends Object
| Modifier and Type | Field and Description |
|---|---|
protected LinearScan |
allocator |
| Modifier | Constructor and Description |
|---|---|
protected |
LinearScanResolveDataFlowPhase(LinearScan allocator) |
| Modifier and Type | Method and Description |
|---|---|
void |
apply(TargetDescription target,
LIRGenerationResult lirGenRes,
AllocationPhase.AllocationContext context) |
void |
apply(TargetDescription target,
LIRGenerationResult lirGenRes,
AllocationPhase.AllocationContext context,
boolean dumpLIR) |
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) |
protected void |
run(TargetDescription target,
LIRGenerationResult lirGenRes,
AllocationPhase.AllocationContext context) |
String |
toString() |
protected final LinearScan allocator
protected LinearScanResolveDataFlowPhase(LinearScan allocator)
protected void run(TargetDescription target,
LIRGenerationResult lirGenRes,
AllocationPhase.AllocationContext context)
protected void resolveCollectMappings(AbstractBlockBase<?> fromBlock, AbstractBlockBase<?> toBlock, AbstractBlockBase<?> midBlock, MoveResolver moveResolver)
protected void resolveDataFlow()
protected void optimizeEmptyBlocks(MoveResolver moveResolver, BitSet blockCompleted)
protected void resolveDataFlow0(MoveResolver moveResolver, BitSet blockCompleted)
public final void apply(TargetDescription target,
LIRGenerationResult lirGenRes,
AllocationPhase.AllocationContext context)
public final void apply(TargetDescription target,
LIRGenerationResult lirGenRes,
AllocationPhase.AllocationContext context,
boolean dumpLIR)