public final class ClassIsAssignableFromNode extends LogicNode implements Canonicalizable.Binary<ValueNode>, Lowerable
ClassIsAssignableFromNode
represents a type check against Class
instead of
against instances. This is used, for instance, to intrinsify
Class.isAssignableFrom(Class)
.Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Canonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Unary<T extends Node>
Modifier and Type | Field and Description |
---|---|
(package private) ValueNode |
otherClass |
(package private) ValueNode |
thisClass |
static NodeClass<ClassIsAssignableFromNode> |
TYPE |
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
ClassIsAssignableFromNode(ValueNode thisClass,
ValueNode otherClass) |
Modifier and Type | Method and Description |
---|---|
Node |
canonical(CanonicalizerTool tool,
ValueNode forX,
ValueNode forY) |
Object |
getOtherClass() |
Object |
getThisClass() |
ValueNode |
getX() |
ValueNode |
getY() |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
and, and, isContradiction, isTautology, or, or
asNode
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, verify, verifyEdges, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
canonical
public static final NodeClass<ClassIsAssignableFromNode> TYPE
ValueNode otherClass
public ClassIsAssignableFromNode(ValueNode thisClass, ValueNode otherClass)
public Object getThisClass()
public Object getOtherClass()
public ValueNode getX()
getX
in interface Canonicalizable.Binary<ValueNode>
public ValueNode getY()
getY
in interface Canonicalizable.Binary<ValueNode>
public Node canonical(CanonicalizerTool tool, ValueNode forX, ValueNode forY)
canonical
in interface Canonicalizable.Binary<ValueNode>
public void lower(LoweringTool tool)
Lowerable