public static class ConditionalEliminationPhase.State extends MergeableState<ConditionalEliminationPhase.State> implements Cloneable
Modifier and Type | Field and Description |
---|---|
private Map<LogicNode,GuardingNode> |
falseConditions |
private Set<ValueNode> |
knownNonNull |
private Set<ValueNode> |
knownNull |
private Map<ValueNode,ResolvedJavaType> |
knownTypes |
private Map<LogicNode,GuardingNode> |
trueConditions |
private Map<ValueNode,ConditionalEliminationPhase.GuardedStamp> |
valueConstraints |
Constructor and Description |
---|
State() |
State(ConditionalEliminationPhase.State other) |
Modifier and Type | Method and Description |
---|---|
void |
addCondition(boolean isTrue,
LogicNode condition,
GuardingNode anchor)
Adds information about a condition.
|
void |
addNullness(boolean isNull,
ValueNode value)
Adds information about the nullness of a value.
|
void |
addType(ResolvedJavaType type,
ValueNode value) |
void |
clear() |
ConditionalEliminationPhase.State |
clone() |
ResolvedJavaType |
getNodeType(ValueNode node) |
boolean |
isNonNull(ValueNode value) |
boolean |
isNull(ValueNode value) |
boolean |
merge(AbstractMergeNode merge,
List<ConditionalEliminationPhase.State> withStates)
This method is called on merge on the state of the first branch.
|
afterSplit, loopBegin, loopEnds
private Map<ValueNode,ResolvedJavaType> knownTypes
private Set<ValueNode> knownNonNull
private Map<LogicNode,GuardingNode> trueConditions
private Map<LogicNode,GuardingNode> falseConditions
private Map<ValueNode,ConditionalEliminationPhase.GuardedStamp> valueConstraints
public State()
public State(ConditionalEliminationPhase.State other)
public boolean merge(AbstractMergeNode merge, List<ConditionalEliminationPhase.State> withStates)
MergeableState
withStates
list
contains the states of the of the other branches in the order of the merge's end nodes.merge
in class MergeableState<ConditionalEliminationPhase.State>
merge
- the merge nodewithStates
- the state at the the merge's end node except the first one.public ResolvedJavaType getNodeType(ValueNode node)
public ConditionalEliminationPhase.State clone()
clone
in class MergeableState<ConditionalEliminationPhase.State>
public void addCondition(boolean isTrue, LogicNode condition, GuardingNode anchor)
public void addNullness(boolean isNull, ValueNode value)
public void addType(ResolvedJavaType type, ValueNode value)
public void clear()