public class PointerEqualsNode extends CompareNode implements Canonicalizable.BinaryCommutative<ValueNode>
| Modifier and Type | Class and Description |
|---|---|
static class |
PointerEqualsNode.PointerEqualsOp |
CompareNode.CompareOpNode.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>| Modifier and Type | Field and Description |
|---|---|
static NodeClass<PointerEqualsNode> |
TYPE |
condition, unorderedIsTruex, yEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
protected |
PointerEqualsNode(NodeClass<? extends PointerEqualsNode> c,
ValueNode x,
ValueNode y) |
|
PointerEqualsNode(ValueNode x,
ValueNode y) |
| Modifier and Type | Method and Description |
|---|---|
Node |
canonical(CanonicalizerTool tool,
ValueNode forX,
ValueNode forY)
Similar to
Canonicalizable.canonical(CanonicalizerTool), except that
implementations should act as if the current input of the node was the given one, i.e.,
they should never look at the inputs via the this pointer. |
static LogicNode |
create(ValueNode x,
ValueNode y,
NodeView view) |
static LogicNode |
findSynonym(ValueNode forX,
ValueNode forY,
NodeView view) |
Stamp |
getSucceedingStampForX(boolean negated,
Stamp xStamp,
Stamp yStamp) |
Stamp |
getSucceedingStampForY(boolean negated,
Stamp xStamp,
Stamp yStamp) |
TriState |
tryFold(Stamp xStampGeneric,
Stamp yStampGeneric) |
condition, createAnyCompareNode, createCompareNode, createCompareNode, createCompareNode, createCompareNode, createFloatCompareNode, createFloatCompareNode, implies, implies, isIdentityComparison, tryConstantFold, tryConstantFoldPrimitive, unorderedIsTruegenerate, getX, getY, maybeCommuteInputs, verifyand, and, implies, isContradiction, isTautology, or, orasConstant, 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, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitmaybeCommuteInputscanonical, getX, getYpublic static final NodeClass<PointerEqualsNode> TYPE
protected PointerEqualsNode(NodeClass<? extends PointerEqualsNode> c, ValueNode x, ValueNode y)
public Node canonical(CanonicalizerTool tool, ValueNode forX, ValueNode forY)
Canonicalizable.BinaryCanonicalizable.canonical(CanonicalizerTool), except that
implementations should act as if the current input of the node was the given one, i.e.,
they should never look at the inputs via the this pointer.canonical in interface Canonicalizable.Binary<ValueNode>public Stamp getSucceedingStampForX(boolean negated, Stamp xStamp, Stamp yStamp)
getSucceedingStampForX in class BinaryOpLogicNodepublic Stamp getSucceedingStampForY(boolean negated, Stamp xStamp, Stamp yStamp)
getSucceedingStampForY in class BinaryOpLogicNodepublic TriState tryFold(Stamp xStampGeneric, Stamp yStampGeneric)
tryFold in class BinaryOpLogicNode