public abstract class IntegerDivRemNode extends FixedBinaryNode implements Lowerable, IterableNodeType, GuardingNode
Modifier and Type | Class and Description |
---|---|
static class |
IntegerDivRemNode.Op |
static class |
IntegerDivRemNode.Type |
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Canonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Ternary<T extends Node>, Canonicalizable.Unary<T extends Node>
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
Modifier and Type | Field and Description |
---|---|
protected JavaConstant |
deoptReasonAndAction |
protected JavaConstant |
deoptSpeculation |
static NodeClass<IntegerDivRemNode> |
TYPE |
x, y
stateBefore
next
EMPTY_ARRAY, stamp
NODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
protected |
IntegerDivRemNode(NodeClass<? extends IntegerDivRemNode> c,
Stamp stamp,
IntegerDivRemNode.Op op,
IntegerDivRemNode.Type type,
ValueNode dividend,
ValueNode divisor,
GuardingNode zeroGuard) |
Modifier and Type | Method and Description |
---|---|
boolean |
canDeoptimize()
Determines if this node needs deoptimization information.
|
boolean |
canFloat() |
JavaConstant |
getDeoptReasonAndAction() |
JavaConstant |
getDeoptSpeculation() |
IntegerDivRemNode.Op |
getOp() |
IntegerDivRemNode.Type |
getType() |
GuardingNode |
getZeroGuard() |
void |
setCanDeopt(boolean canDeopt) |
void |
setImplicitDeoptimization(JavaConstant deoptReasonAndAction,
JavaConstant deoptSpeculation) |
void |
setZeroGuard(GuardingNode zeroCheck) |
getX, getY, setX, setY
setStateBefore, stateBefore
asFixedWithNextNode, next, setNext
asFixedNode, verify
asConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterface
afterClone, 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, hasExactlyOneUsageOfType, 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, withNodeSourcePosition
clone, equals, getClass, notify, notifyAll, wait, wait, wait
asNode
canonical, canonical
canUseAsStateDuring
validateDeoptFrameStates
states
asFixedNode
public static final NodeClass<IntegerDivRemNode> TYPE
protected JavaConstant deoptReasonAndAction
protected JavaConstant deoptSpeculation
protected IntegerDivRemNode(NodeClass<? extends IntegerDivRemNode> c, Stamp stamp, IntegerDivRemNode.Op op, IntegerDivRemNode.Type type, ValueNode dividend, ValueNode divisor, GuardingNode zeroGuard)
public final GuardingNode getZeroGuard()
public void setZeroGuard(GuardingNode zeroCheck)
public final IntegerDivRemNode.Op getOp()
public final IntegerDivRemNode.Type getType()
public boolean canFloat()
public void setCanDeopt(boolean canDeopt)
public boolean canDeoptimize()
DeoptimizingNode
canDeoptimize
in interface DeoptimizingNode
public JavaConstant getDeoptReasonAndAction()
public JavaConstant getDeoptSpeculation()
public void setImplicitDeoptimization(JavaConstant deoptReasonAndAction, JavaConstant deoptSpeculation)