public abstract class ControlSplitNode extends FixedNode
ControlSplitNode is a base class for all instructions that split the control flow
(i.e., have more than one successor).Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable| Modifier and Type | Field and Description |
|---|---|
static NodeClass<ControlSplitNode> |
TYPE |
EMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
protected |
ControlSplitNode(NodeClass<? extends ControlSplitNode> c,
Stamp stamp) |
| Modifier and Type | Method and Description |
|---|---|
abstract AbstractBeginNode |
getPrimarySuccessor()
Primary successor of the control split.
|
abstract ProfileData |
getProfileData()
Returns the source of this node's knowledge about its successor probabilities.
|
abstract int |
getSuccessorCount()
Returns the number of successors.
|
abstract double |
probability(AbstractBeginNode successor) |
abstract boolean |
setProbability(AbstractBeginNode successor,
ProfileData.BranchProbabilityData profileData)
Attempts to set the probability for the given successor to the passed value (which has to be
in the range of 0.0 and 1.0).
|
double[] |
successorProbabilities()
Returns an array containing the successors' probabilities.
|
asFixedNode, 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, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitasNodepublic static final NodeClass<ControlSplitNode> TYPE
protected ControlSplitNode(NodeClass<? extends ControlSplitNode> c, Stamp stamp)
public abstract double probability(AbstractBeginNode successor)
public abstract boolean setProbability(AbstractBeginNode successor, ProfileData.BranchProbabilityData profileData)
profileData's profile source.public double[] successorProbabilities()
public abstract AbstractBeginNode getPrimarySuccessor()
public abstract int getSuccessorCount()
public abstract ProfileData getProfileData()