public abstract class BinaryNode extends FloatingNode implements Canonicalizable.Binary<ValueNode>
BinaryNode class is the base of arithmetic and logic operations with two inputs.Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberableCanonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Unary<T extends Node>| Modifier and Type | Field and Description |
|---|---|
static NodeClass<BinaryNode> |
TYPE |
protected ValueNode |
x |
protected ValueNode |
y |
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
protected |
BinaryNode(NodeClass<? extends BinaryNode> c,
Stamp stamp,
ValueNode x,
ValueNode y)
Creates a new BinaryNode instance.
|
| Modifier and Type | Method and Description |
|---|---|
ValueNode |
getX()
Gets the current value of the input, so that calling
Canonicalizable.Binary.canonical(CanonicalizerTool, Node, Node) with the value returned from this
method should behave exactly like Canonicalizable.canonical(CanonicalizerTool). |
ValueNode |
getY()
Gets the current value of the input, so that calling
Canonicalizable.Binary.canonical(CanonicalizerTool, Node, Node) with the value returned from this
method should behave exactly like Canonicalizable.canonical(CanonicalizerTool). |
void |
setX(ValueNode x) |
void |
setY(ValueNode y) |
asNodeasConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStampacceptInputs, 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, verify, verifyEdges, verifyInputsclone, finalize, getClass, notify, notifyAll, wait, wait, waitcanonical, canonicalpublic static final NodeClass<BinaryNode> TYPE
protected BinaryNode(NodeClass<? extends BinaryNode> c, Stamp stamp, ValueNode x, ValueNode y)
stamp - the result type of this instructionx - the first input instructiony - the second input instructionpublic ValueNode getX()
Canonicalizable.BinaryCanonicalizable.Binary.canonical(CanonicalizerTool, Node, Node) with the value returned from this
method should behave exactly like Canonicalizable.canonical(CanonicalizerTool).getX in interface Canonicalizable.Binary<ValueNode>public ValueNode getY()
Canonicalizable.BinaryCanonicalizable.Binary.canonical(CanonicalizerTool, Node, Node) with the value returned from this
method should behave exactly like Canonicalizable.canonical(CanonicalizerTool).getY in interface Canonicalizable.Binary<ValueNode>