final class RegisterVerifier extends Object
Modifier and Type | Field and Description |
---|---|
(package private) LinearScan |
allocator |
(package private) ArrayMap<Interval[]> |
savedStates |
(package private) List<AbstractBlockBase<?>> |
workList |
Constructor and Description |
---|
RegisterVerifier(LinearScan allocator) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
addToWorkList(AbstractBlockBase<?> block) |
(package private) static boolean |
checkState(AbstractBlockBase<?> block,
LIRInstruction op,
Interval[] inputState,
Value operand,
Value reg,
Interval interval) |
(package private) static Interval[] |
copy(Interval[] inputState) |
(package private) Interval |
intervalAt(Value operand) |
protected void |
printState(Interval[] inputState) |
private void |
processBlock(AbstractBlockBase<?> block) |
(package private) void |
processOperations(AbstractBlockBase<?> block,
Interval[] inputState) |
private void |
processSuccessor(AbstractBlockBase<?> block,
Interval[] inputState) |
(package private) void |
setStateForBlock(AbstractBlockBase<?> block,
Interval[] savedState) |
(package private) Interval[] |
stateForBlock(AbstractBlockBase<?> block) |
(package private) static void |
statePut(Interval[] inputState,
Value location,
Interval interval) |
(package private) int |
stateSize() |
(package private) void |
verify(AbstractBlockBase<?> start) |
LinearScan allocator
List<AbstractBlockBase<?>> workList
ArrayMap<Interval[]> savedStates
RegisterVerifier(LinearScan allocator)
Interval intervalAt(Value operand)
int stateSize()
Interval[] stateForBlock(AbstractBlockBase<?> block)
void setStateForBlock(AbstractBlockBase<?> block, Interval[] savedState)
void addToWorkList(AbstractBlockBase<?> block)
void verify(AbstractBlockBase<?> start)
private void processBlock(AbstractBlockBase<?> block)
protected void printState(Interval[] inputState)
private void processSuccessor(AbstractBlockBase<?> block, Interval[] inputState)
static boolean checkState(AbstractBlockBase<?> block, LIRInstruction op, Interval[] inputState, Value operand, Value reg, Interval interval)
void processOperations(AbstractBlockBase<?> block, Interval[] inputState)