public final class BranchProbabilityNode extends FloatingNode implements Simplifiable, Lowerable, Canonicalizable
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableCanonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Ternary<T extends Node>, Canonicalizable.Unary<T extends Node>EMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
BranchProbabilityNode(ValueNode probability,
ValueNode condition) |
| Modifier and Type | Method and Description |
|---|---|
Node |
canonical(CanonicalizerTool tool)
Implementations of this method can provide local optimizations like constant folding and
strength reduction.
|
ValueNode |
getCondition() |
ValueNode |
getProbability() |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
static boolean |
probability(double probability,
boolean condition)
This intrinsic should only be used for the condition of an if statement.
|
void |
setProbability(ValueNode probability) |
void |
simplify(SimplifierTool tool) |
asConstant, 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, verify, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitasNodepublic static final NodeClass<BranchProbabilityNode> TYPE
public static final double LIKELY_PROBABILITY
public static final double NOT_LIKELY_PROBABILITY
public static final ProfileData.BranchProbabilityData LIKELY_PROFILE
public static final ProfileData.BranchProbabilityData NOT_LIKELY_PROFILE
public static final double FREQUENT_PROBABILITY
public static final double NOT_FREQUENT_PROBABILITY
public static final ProfileData.BranchProbabilityData FREQUENT_PROFILE
public static final ProfileData.BranchProbabilityData NOT_FREQUENT_PROFILE
public static final double FAST_PATH_PROBABILITY
public static final double SLOW_PATH_PROBABILITY
public static final ProfileData.BranchProbabilityData FAST_PATH_PROFILE
public static final ProfileData.BranchProbabilityData SLOW_PATH_PROFILE
public static final double VERY_FAST_PATH_PROBABILITY
public static final double VERY_SLOW_PATH_PROBABILITY
public static final ProfileData.BranchProbabilityData VERY_FAST_PATH_PROFILE
public static final ProfileData.BranchProbabilityData VERY_SLOW_PATH_PROFILE
public static final double EXTREMELY_FAST_PATH_PROBABILITY
public static final double EXTREMELY_SLOW_PATH_PROBABILITY
public static final ProfileData.BranchProbabilityData EXTREMELY_FAST_PATH_PROFILE
public static final ProfileData.BranchProbabilityData EXTREMELY_SLOW_PATH_PROFILE
public static final double DEOPT_PROBABILITY
public static final ProfileData.BranchProbabilityData DEOPT_PROFILE
public static final double ALWAYS_TAKEN_PROBABILITY
public static final double NEVER_TAKEN_PROBABILITY
public static final ProfileData.BranchProbabilityData ALWAYS_TAKEN_PROFILE
public static final ProfileData.BranchProbabilityData NEVER_TAKEN_PROFILE
public ValueNode getProbability()
public ValueNode getCondition()
public void setProbability(ValueNode probability)
public Node canonical(CanonicalizerTool tool)
Canonicalizablenull 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 Canonicalizabletool - provides access to runtime interfaces like MetaAccessProviderpublic void simplify(SimplifierTool tool)
simplify in interface Simplifiablepublic static boolean probability(double probability,
boolean condition)
probability - the probability that the given condition is true as a double value between
0.0 and 1.0.condition - the simple condition without any && or || operatorspublic void lower(LoweringTool tool)
Lowerable