public final class LoadMethodNode extends FixedWithNextNode implements Lowerable, Canonicalizable
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 |
hub |
protected jdk.internal.jvmci.meta.ResolvedJavaMethod |
method |
protected jdk.internal.jvmci.meta.ResolvedJavaType |
receiverType |
static NodeClass<LoadMethodNode> |
TYPE |
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
LoadMethodNode(Stamp stamp,
jdk.internal.jvmci.meta.ResolvedJavaMethod method,
jdk.internal.jvmci.meta.ResolvedJavaType receiverType,
ValueNode hub) |
Modifier and Type | Method and Description |
---|---|
Node |
canonical(CanonicalizerTool tool) |
ValueNode |
getHub() |
jdk.internal.jvmci.meta.ResolvedJavaMethod |
getMethod() |
jdk.internal.jvmci.meta.ResolvedJavaType |
getReceiverType() |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
private Node |
resolveExactMethod(CanonicalizerTool tool,
jdk.internal.jvmci.meta.ResolvedJavaType type)
Find the method which would be loaded.
|
asNode, next, setNext
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, verifyEdges, verifyInputs
public static final NodeClass<LoadMethodNode> TYPE
protected final jdk.internal.jvmci.meta.ResolvedJavaMethod method
protected final jdk.internal.jvmci.meta.ResolvedJavaType receiverType
public LoadMethodNode(Stamp stamp, jdk.internal.jvmci.meta.ResolvedJavaMethod method, jdk.internal.jvmci.meta.ResolvedJavaType receiverType, ValueNode hub)
public void lower(LoweringTool tool)
Lowerable
public Node canonical(CanonicalizerTool tool)
canonical
in interface Canonicalizable
private Node resolveExactMethod(CanonicalizerTool tool, jdk.internal.jvmci.meta.ResolvedJavaType type)
tool
- type
- the exact type of object being loaded fromtype
or null if it doesn't implement
the methodpublic jdk.internal.jvmci.meta.ResolvedJavaMethod getMethod()
public jdk.internal.jvmci.meta.ResolvedJavaType getReceiverType()