public abstract class IntegerExactArithmeticSplitNode extends ControlSplitNode implements LIRLowerable
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Modifier and Type | Field and Description |
---|---|
(package private) AbstractBeginNode |
next |
(package private) AbstractBeginNode |
overflowSuccessor |
static NodeClass<IntegerExactArithmeticSplitNode> |
TYPE |
(package private) ValueNode |
x |
(package private) ValueNode |
y |
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
protected |
IntegerExactArithmeticSplitNode(NodeClass<? extends IntegerExactArithmeticSplitNode> c,
Stamp stamp,
ValueNode x,
ValueNode y,
AbstractBeginNode next,
AbstractBeginNode overflowSuccessor) |
Modifier and Type | Method and Description |
---|---|
void |
generate(NodeLIRBuilderTool generator) |
protected abstract Value |
generateArithmetic(NodeLIRBuilderTool generator) |
AbstractBeginNode |
getNext() |
AbstractBeginNode |
getOverflowSuccessor() |
AbstractBeginNode |
getPrimarySuccessor()
Primary successor of the control split.
|
ValueNode |
getX() |
ValueNode |
getY() |
(package private) static void |
lower(LoweringTool tool,
IntegerExactArithmeticNode node) |
double |
probability(AbstractBeginNode successor) |
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, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs
public static final NodeClass<IntegerExactArithmeticSplitNode> TYPE
AbstractBeginNode next
AbstractBeginNode overflowSuccessor
protected IntegerExactArithmeticSplitNode(NodeClass<? extends IntegerExactArithmeticSplitNode> c, Stamp stamp, ValueNode x, ValueNode y, AbstractBeginNode next, AbstractBeginNode overflowSuccessor)
public AbstractBeginNode getPrimarySuccessor()
ControlSplitNode
getPrimarySuccessor
in class ControlSplitNode
public double probability(AbstractBeginNode successor)
probability
in class ControlSplitNode
public AbstractBeginNode getNext()
public AbstractBeginNode getOverflowSuccessor()
public void generate(NodeLIRBuilderTool generator)
generate
in interface LIRLowerable
protected abstract Value generateArithmetic(NodeLIRBuilderTool generator)
static void lower(LoweringTool tool, IntegerExactArithmeticNode node)