public class GuardNode extends FloatingAnchoredNode implements Canonicalizable, GuardingNode
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Canonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Unary<T extends Node>
Modifier and Type | Field and Description |
---|---|
protected DeoptimizationAction |
action |
protected LogicNode |
condition |
protected boolean |
negated |
protected DeoptimizationReason |
reason |
protected JavaConstant |
speculation |
static NodeClass<GuardNode> |
TYPE |
anchor
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
|
GuardNode(LogicNode condition,
AnchoringNode anchor,
DeoptimizationReason reason,
DeoptimizationAction action,
boolean negated,
JavaConstant speculation) |
protected |
GuardNode(NodeClass<? extends GuardNode> c,
LogicNode condition,
AnchoringNode anchor,
DeoptimizationReason reason,
DeoptimizationAction action,
boolean negated,
JavaConstant speculation) |
Modifier and Type | Method and Description |
---|---|
DeoptimizationAction |
action() |
Node |
canonical(CanonicalizerTool tool)
Implementations of this method can provide local optimizations like constant folding and
strength reduction.
|
LogicNode |
condition()
The instruction that produces the tested boolean value.
|
JavaConstant |
getSpeculation() |
boolean |
isNegated() |
FixedWithNextNode |
lowerGuard() |
void |
negate() |
DeoptimizationReason |
reason() |
void |
setAction(DeoptimizationAction invalidaterecompile) |
void |
setSpeculation(JavaConstant speculation) |
String |
toString(Verbosity verbosity)
Creates a String representation for this node with a given
Verbosity . |
getAnchor, setAnchor
asNode
asConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStamp
acceptInputs, acceptSuccessors, afterClone, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearSuccessors, copyWithInputs, copyWithInputs, equals, fail, formatTo, getDebugProperties, getDebugProperties, getId, getNodeClass, getUsageAt, getUsageCount, hashCode, hasNoUsages, hasUsages, inputs, isAlive, isDeleted, markDeleted, modCount, newIdentityMap, newIdentityMap, newIdentityMap, newMap, newMap, newMap, newSet, newSet, predecessor, pushInputs, removeUsage, replaceAndDelete, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceFirstInput, replaceFirstSuccessor, safeDelete, simplify, successors, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verify, verifyEdges, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asNode
protected final DeoptimizationReason reason
protected JavaConstant speculation
protected DeoptimizationAction action
protected boolean negated
public GuardNode(LogicNode condition, AnchoringNode anchor, DeoptimizationReason reason, DeoptimizationAction action, boolean negated, JavaConstant speculation)
protected GuardNode(NodeClass<? extends GuardNode> c, LogicNode condition, AnchoringNode anchor, DeoptimizationReason reason, DeoptimizationAction action, boolean negated, JavaConstant speculation)
public boolean isNegated()
public DeoptimizationReason reason()
public DeoptimizationAction action()
public JavaConstant getSpeculation()
public void setSpeculation(JavaConstant speculation)
public String toString(Verbosity verbosity)
Node
Verbosity
.public Node canonical(CanonicalizerTool tool)
Canonicalizable
null
will delete the current node and replace it with null
at
all usages. Note that it is not necessary to delete floating nodes that have no more usages
this way - they will be deleted automatically.canonical
in interface Canonicalizable
tool
- provides access to runtime interfaces like MetaAccessProvider
public FixedWithNextNode lowerGuard()
public void negate()
public void setAction(DeoptimizationAction invalidaterecompile)