public final class FixedGuardNode extends AbstractFixedGuardNode implements Lowerable, IterableNodeType, SwitchFoldable
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableSwitchFoldable.Helper, SwitchFoldable.KeyData, SwitchFoldable.QuickQueryKeyData, SwitchFoldable.QuickQueryList<T>StaticDeoptimizingNode.GuardPriorityDeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring| Modifier and Type | Field and Description |
|---|---|
static NodeClass<FixedGuardNode> |
TYPE |
action, condition, negated, noDeoptSuccessorPosition, reason, speculationstateBeforenextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdgesSORTER| Constructor and Description |
|---|
FixedGuardNode(LogicNode condition,
DeoptimizationReason deoptReason,
DeoptimizationAction action) |
FixedGuardNode(LogicNode condition,
DeoptimizationReason deoptReason,
DeoptimizationAction action,
boolean negated) |
FixedGuardNode(LogicNode condition,
DeoptimizationReason deoptReason,
DeoptimizationAction action,
boolean negated,
NodeSourcePosition noDeoptSuccessorPosition) |
FixedGuardNode(LogicNode condition,
DeoptimizationReason deoptReason,
DeoptimizationAction action,
SpeculationLog.Speculation speculation,
boolean negated) |
FixedGuardNode(LogicNode condition,
DeoptimizationReason deoptReason,
DeoptimizationAction action,
SpeculationLog.Speculation speculation,
boolean negated,
NodeSourcePosition noDeoptSuccessorPosition) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canDeoptimize()
Determines if this node needs deoptimization information.
|
void |
cutOffCascadeNode()
Removes the successors of this node, while keeping it linked to the rest of the cascade.
|
void |
cutOffLowestCascadeNode()
Completely removes all successors from this node.
|
double |
defaultProbability()
Returns the probability of going to the default branch.
|
AbstractBeginNode |
getDefault()
Returns the branch that will close this switch folding, assuming this is called on the lowest
node of the cascade.
|
Node |
getNextSwitchFoldableBranch()
Returns the direct successor in the branch to check for SwitchFoldability.
|
int |
intKeyAt(int i)
Returns the value of the i-th key of this node.
|
boolean |
isDefaultSuccessor(AbstractBeginNode beginNode)
Should be overridden if getDefault() has side effects.
|
boolean |
isInSwitch(ValueNode switchValue)
Determines whether the node should be folded in the current folding attempt.
|
boolean |
isNonInitializedProfile()
Heuristics that tries to determine whether or not a foldable node was profiled.
|
double |
keyProbability(int i)
Returns the probability of seeing the i-th key of this node.
|
AbstractBeginNode |
keySuccessor(int i)
Returns the branch to follow when seeing the i-th key of this node.
|
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
ProfileData.ProfileSource |
profileSource()
Returns the source of the information about branch probabilities of this node.
|
void |
simplify(SimplifierTool tool) |
ValueNode |
switchValue()
Returns the value that will be used as the switch input.
|
condition, getAction, getCondition, getNoDeoptSuccessorPosition, getReason, getSpeculation, isNegated, lowerToIf, setAction, setCondition, setNoDeoptSuccessorPosition, setReason, toStringsetStateBefore, stateBeforeasFixedWithNextNode, next, setNextasFixedNode, verifyasConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterfaceafterClone, applyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hashCode, hasMoreThanOneUsage, hasNoUsages, hasOnlyUsagesOfType, hasUsages, hasUsagesOfType, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeUsage, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitkeyCount, maybeIsInSwitch, sameSwitchValue, switchTransformationOptimizationasNodeaddCallerToNoDeoptSuccessorPositioncomputePriority, mergeActionscanUseAsStateDuringstatesasFixedNodepublic static final NodeClass<FixedGuardNode> TYPE
public FixedGuardNode(LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action)
public FixedGuardNode(LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action, boolean negated)
public FixedGuardNode(LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action, boolean negated, NodeSourcePosition noDeoptSuccessorPosition)
public FixedGuardNode(LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action, SpeculationLog.Speculation speculation, boolean negated)
public FixedGuardNode(LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action, SpeculationLog.Speculation speculation, boolean negated, NodeSourcePosition noDeoptSuccessorPosition)
public void simplify(SimplifierTool tool)
simplify in interface Simplifiablesimplify in class AbstractFixedGuardNodepublic void lower(LoweringTool tool)
Lowerablepublic boolean canDeoptimize()
DeoptimizingNodecanDeoptimize in interface DeoptimizingNodecanDeoptimize in class AbstractFixedGuardNodepublic Node getNextSwitchFoldableBranch()
SwitchFoldablegetNextSwitchFoldableBranch in interface SwitchFoldablepublic boolean isInSwitch(ValueNode switchValue)
SwitchFoldableisInSwitch in interface SwitchFoldableswitchValue - the value of the switch that will spawn through this folding attempt.SwitchFoldable.maybeIsInSwitch(LogicNode),
SwitchFoldable.sameSwitchValue(LogicNode, ValueNode)public void cutOffCascadeNode()
SwitchFoldablecutOffCascadeNode in interface SwitchFoldablepublic void cutOffLowestCascadeNode()
SwitchFoldablecutOffLowestCascadeNode in interface SwitchFoldablepublic boolean isDefaultSuccessor(AbstractBeginNode beginNode)
SwitchFoldableisDefaultSuccessor in interface SwitchFoldablepublic AbstractBeginNode getDefault()
SwitchFoldablegetDefault in interface SwitchFoldablepublic ValueNode switchValue()
SwitchFoldableswitchValue in interface SwitchFoldablepublic boolean isNonInitializedProfile()
SwitchFoldableisNonInitializedProfile in interface SwitchFoldablepublic ProfileData.ProfileSource profileSource()
SwitchFoldableprofileSource in interface SwitchFoldablepublic int intKeyAt(int i)
SwitchFoldableintKeyAt in interface SwitchFoldablepublic double keyProbability(int i)
SwitchFoldablekeyProbability in interface SwitchFoldablepublic AbstractBeginNode keySuccessor(int i)
SwitchFoldablekeySuccessor in interface SwitchFoldablepublic double defaultProbability()
SwitchFoldabledefaultProbability in interface SwitchFoldable