public abstract class AbstractFixedGuardNode extends DeoptimizingFixedWithNextNode implements Simplifiable, GuardingNode
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberableDeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring| Modifier and Type | Field and Description |
|---|---|
protected DeoptimizationAction |
action |
protected LogicNode |
condition |
protected boolean |
negated |
protected DeoptimizationReason |
reason |
protected JavaConstant |
speculation |
static NodeClass<AbstractFixedGuardNode> |
TYPE |
stateBeforenextNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
protected |
AbstractFixedGuardNode(NodeClass<? extends AbstractFixedGuardNode> c,
LogicNode condition,
DeoptimizationReason deoptReason,
DeoptimizationAction action,
JavaConstant speculation,
boolean negated) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canDeoptimize()
Determines if this node needs deoptimization information.
|
LogicNode |
condition() |
DeoptimizationAction |
getAction() |
DeoptimizationReason |
getReason() |
JavaConstant |
getSpeculation() |
boolean |
isNegated() |
DeoptimizeNode |
lowerToIf() |
void |
setCondition(LogicNode x) |
void |
simplify(SimplifierTool tool)
Must be overridden by subclasses that implement
Simplifiable. |
String |
toString(Verbosity verbosity)
Creates a String representation for this node with a given
Verbosity. |
setStateBefore, stateBeforeasNode, next, setNextasConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStampacceptInputs, 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, successors, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputsclone, finalize, getClass, notify, notifyAll, wait, wait, waitasNodestatespublic static final NodeClass<AbstractFixedGuardNode> TYPE
protected final DeoptimizationReason reason
protected final DeoptimizationAction action
protected JavaConstant speculation
protected boolean negated
protected AbstractFixedGuardNode(NodeClass<? extends AbstractFixedGuardNode> c, LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action, JavaConstant speculation, boolean negated)
public void setCondition(LogicNode x)
public DeoptimizationReason getReason()
public DeoptimizationAction getAction()
public JavaConstant getSpeculation()
public boolean isNegated()
public String toString(Verbosity verbosity)
NodeVerbosity.public void simplify(SimplifierTool tool)
NodeSimplifiable. The implementation in
Node exists to obviate the need to cast a node before invoking
Simplifiable.simplify(SimplifierTool).simplify in interface Simplifiablesimplify in class Nodepublic DeoptimizeNode lowerToIf()
public boolean canDeoptimize()
DeoptimizingNodecanDeoptimize in interface DeoptimizingNode