public abstract class LocationMarker<T extends AbstractBlockBase<T>,S extends ValueSet<S>> extends Object
Modifier and Type | Field and Description |
---|---|
private S |
currentSet |
(package private) ValueConsumer |
defConsumer |
protected FrameMap |
frameMap |
private LIR |
lir |
private BlockMap<S> |
liveInMap |
private BlockMap<S> |
liveOutMap |
private static LIRKind |
REFERENCE_KIND |
private static EnumSet<LIRInstruction.OperandFlag> |
REGISTER_FLAG_SET |
(package private) InstructionStateProcedure |
stateConsumer |
(package private) ValueConsumer |
useConsumer |
Modifier | Constructor and Description |
---|---|
protected |
LocationMarker(LIR lir,
FrameMap frameMap) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
build() |
protected abstract S |
newLiveValueSet() |
private void |
processBlock(AbstractBlockBase<T> block,
UniqueWorkList<T> worklist) |
private void |
processInstructionBottomUp(LIRInstruction op)
Process all values of an instruction bottom-up, i.e.
|
protected abstract void |
processState(LIRInstruction op,
LIRFrameState info,
S values) |
protected abstract boolean |
shouldProcessValue(Value operand) |
private boolean |
updateOutBlock(AbstractBlockBase<T> block)
Merge outSet with in-set of successors.
|
private final BlockMap<S extends ValueSet<S>> liveOutMap
private static final EnumSet<LIRInstruction.OperandFlag> REGISTER_FLAG_SET
private static final LIRKind REFERENCE_KIND
private S extends ValueSet<S> currentSet
InstructionStateProcedure stateConsumer
ValueConsumer useConsumer
ValueConsumer defConsumer
protected LocationMarker(LIR lir, FrameMap frameMap)
protected abstract S newLiveValueSet()
protected abstract boolean shouldProcessValue(Value operand)
protected abstract void processState(LIRInstruction op, LIRFrameState info, S values)
void build()
private boolean updateOutBlock(AbstractBlockBase<T> block)
private void processBlock(AbstractBlockBase<T> block, UniqueWorkList<T> worklist)
private void processInstructionBottomUp(LIRInstruction op)