public class SSILinearScanResolveDataFlowPhase extends LinearScanResolveDataFlowPhase
Modifier and Type | Class and Description |
---|---|
private class |
SSILinearScanResolveDataFlowPhase.MyPhiValueVisitor |
AllocationPhase.AllocationContext
LIRPhase.Options
Modifier and Type | Field and Description |
---|---|
private static DebugMetric |
numSSIResolutionMoves |
private static DebugMetric |
numStackToStackMoves |
allocator
Constructor and Description |
---|
SSILinearScanResolveDataFlowPhase(LinearScan allocator) |
Modifier and Type | Method and Description |
---|---|
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.
|
optimizeEmptyBlocks, resolveDataFlow0, run
run
apply, apply, createName, getName
private static final DebugMetric numSSIResolutionMoves
private static final DebugMetric numStackToStackMoves
public SSILinearScanResolveDataFlowPhase(LinearScan allocator)
protected void resolveDataFlow()
LinearScanResolveDataFlowPhase
resolveDataFlow
in class LinearScanResolveDataFlowPhase
protected void resolveCollectMappings(AbstractBlockBase<?> fromBlock, AbstractBlockBase<?> toBlock, AbstractBlockBase<?> midBlock, MoveResolver moveResolver)
resolveCollectMappings
in class LinearScanResolveDataFlowPhase