public final class SSIBlockValueMapImpl extends Object implements BlockValueMap
Modifier and Type | Class and Description |
---|---|
private static class |
SSIBlockValueMapImpl.BlockData |
Modifier and Type | Field and Description |
---|---|
private BlockMap<SSIBlockValueMapImpl.BlockData> |
blockData |
private int |
initialStackSlotCapacity |
private int |
initialVariableCapacity |
private ValueMap<jdk.internal.jvmci.meta.Value,AbstractBlockBase<?>> |
valueToDefBlock
Mapping from value to definition block.
|
Constructor and Description |
---|
SSIBlockValueMapImpl(AbstractControlFlowGraph<?> cfg,
int initialVariableCapacity,
int initialStackSlotCapacity) |
Modifier and Type | Method and Description |
---|---|
void |
accessOperand(jdk.internal.jvmci.meta.Value operand,
AbstractBlockBase<?> block) |
private void |
accessRecursive(jdk.internal.jvmci.meta.Value operand,
AbstractBlockBase<?> defBlock,
AbstractBlockBase<?> block) |
private void |
accessRecursive(jdk.internal.jvmci.meta.Value operand,
AbstractBlockBase<?> defBlock,
AbstractBlockBase<?> block,
Deque<AbstractBlockBase<?>> worklist) |
private int |
addLiveValueToBlock(jdk.internal.jvmci.meta.Value operand,
AbstractBlockBase<?> block) |
void |
defineOperand(jdk.internal.jvmci.meta.Value operand,
AbstractBlockBase<?> block) |
void |
finish(LIRGeneratorTool gen) |
private static StandardOp.BlockEndOp |
getBlockEnd(LIRGeneratorTool gen,
AbstractBlockBase<?> block) |
private AbstractBlockBase<?> |
getDefinitionBlock(jdk.internal.jvmci.meta.Value operand) |
private static StandardOp.LabelOp |
getLabel(LIRGeneratorTool gen,
AbstractBlockBase<?> block) |
private static List<LIRInstruction> |
getLIRforBlock(LIRGeneratorTool gen,
AbstractBlockBase<?> block) |
private SSIBlockValueMapImpl.BlockData |
getOrInit(AbstractBlockBase<?> block) |
private static boolean |
processValue(jdk.internal.jvmci.meta.Value operand) |
private void |
setDefinitionBlock(jdk.internal.jvmci.meta.Value operand,
AbstractBlockBase<?> block) |
private final ValueMap<jdk.internal.jvmci.meta.Value,AbstractBlockBase<?>> valueToDefBlock
private final BlockMap<SSIBlockValueMapImpl.BlockData> blockData
private final int initialVariableCapacity
private final int initialStackSlotCapacity
public SSIBlockValueMapImpl(AbstractControlFlowGraph<?> cfg, int initialVariableCapacity, int initialStackSlotCapacity)
public void accessOperand(jdk.internal.jvmci.meta.Value operand, AbstractBlockBase<?> block)
accessOperand
in interface BlockValueMap
public void defineOperand(jdk.internal.jvmci.meta.Value operand, AbstractBlockBase<?> block)
defineOperand
in interface BlockValueMap
private static boolean processValue(jdk.internal.jvmci.meta.Value operand)
private AbstractBlockBase<?> getDefinitionBlock(jdk.internal.jvmci.meta.Value operand)
private void setDefinitionBlock(jdk.internal.jvmci.meta.Value operand, AbstractBlockBase<?> block)
private SSIBlockValueMapImpl.BlockData getOrInit(AbstractBlockBase<?> block)
private void accessRecursive(jdk.internal.jvmci.meta.Value operand, AbstractBlockBase<?> defBlock, AbstractBlockBase<?> block)
private void accessRecursive(jdk.internal.jvmci.meta.Value operand, AbstractBlockBase<?> defBlock, AbstractBlockBase<?> block, Deque<AbstractBlockBase<?>> worklist)
private int addLiveValueToBlock(jdk.internal.jvmci.meta.Value operand, AbstractBlockBase<?> block)
public void finish(LIRGeneratorTool gen)
private static List<LIRInstruction> getLIRforBlock(LIRGeneratorTool gen, AbstractBlockBase<?> block)
private static StandardOp.LabelOp getLabel(LIRGeneratorTool gen, AbstractBlockBase<?> block)
private static StandardOp.BlockEndOp getBlockEnd(LIRGeneratorTool gen, AbstractBlockBase<?> block)