public abstract class BinaryOpLogicNode extends LogicNode implements LIRLowerable, Canonicalizable.Binary<ValueNode>
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<BinaryOpLogicNode> |
TYPE |
protected ValueNode |
x |
protected ValueNode |
y |
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
BinaryOpLogicNode(NodeClass<? extends BinaryOpLogicNode> c,
ValueNode x,
ValueNode y) |
| Modifier and Type | Method and Description |
|---|---|
void |
generate(NodeLIRBuilderTool gen) |
abstract Stamp |
getSucceedingStampForX(boolean negated) |
abstract Stamp |
getSucceedingStampForY(boolean negated) |
ValueNode |
getX() |
ValueNode |
getY() |
LogicNode |
maybeCommuteInputs()
Ensure a canonical ordering of inputs for commutative nodes to improve GVN results.
|
abstract jdk.internal.jvmci.meta.TriState |
tryFold(Stamp xStamp,
Stamp yStamp) |
boolean |
verify() |
and, and, isContradiction, isTautology, or, orasNodeasConstant, 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, verifyEdges, verifyInputsclone, finalize, getClass, notify, notifyAll, wait, wait, waitcanonical, canonicalpublic static final NodeClass<BinaryOpLogicNode> TYPE
public BinaryOpLogicNode(NodeClass<? extends BinaryOpLogicNode> c, ValueNode x, ValueNode y)
public ValueNode getX()
getX in interface Canonicalizable.Binary<ValueNode>public ValueNode getY()
getY in interface Canonicalizable.Binary<ValueNode>public void generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerablepublic LogicNode maybeCommuteInputs()
Node.id and call Graph.findDuplicate(Node) on the node
if it's currently in a graph.public abstract Stamp getSucceedingStampForX(boolean negated)
public abstract Stamp getSucceedingStampForY(boolean negated)