public class MethodCallTargetNode extends CallTargetNode implements IterableNodeType, Simplifiable
CallTargetNode.InvokeKind
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Modifier and Type | Field and Description |
---|---|
protected jdk.internal.jvmci.meta.JavaTypeProfile |
profile |
protected jdk.internal.jvmci.meta.JavaType |
returnType |
static NodeClass<MethodCallTargetNode> |
TYPE |
arguments, invokeKind, targetMethod
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
|
MethodCallTargetNode(CallTargetNode.InvokeKind invokeKind,
jdk.internal.jvmci.meta.ResolvedJavaMethod targetMethod,
ValueNode[] arguments,
jdk.internal.jvmci.meta.JavaType returnType,
jdk.internal.jvmci.meta.JavaTypeProfile profile) |
protected |
MethodCallTargetNode(NodeClass<? extends MethodCallTargetNode> c,
CallTargetNode.InvokeKind invokeKind,
jdk.internal.jvmci.meta.ResolvedJavaMethod targetMethod,
ValueNode[] arguments,
jdk.internal.jvmci.meta.JavaType returnType,
jdk.internal.jvmci.meta.JavaTypeProfile profile) |
Modifier and Type | Method and Description |
---|---|
static MethodCallTargetNode |
find(StructuredGraph graph,
jdk.internal.jvmci.meta.ResolvedJavaMethod method) |
static jdk.internal.jvmci.meta.ResolvedJavaMethod |
findSpecialCallTarget(CallTargetNode.InvokeKind invokeKind,
ValueNode receiver,
jdk.internal.jvmci.meta.ResolvedJavaMethod targetMethod,
jdk.internal.jvmci.meta.ResolvedJavaType contextType) |
jdk.internal.jvmci.meta.JavaTypeProfile |
getProfile() |
Invoke |
invoke() |
boolean |
isStatic()
Checks whether this is an invocation of a static method.
|
ValueNode |
receiver()
Gets the instruction that produces the receiver object for this invocation, if any.
|
jdk.internal.jvmci.meta.Kind |
returnKind() |
Stamp |
returnStamp() |
jdk.internal.jvmci.meta.JavaType |
returnType() |
void |
simplify(SimplifierTool tool) |
String |
targetName()
A human-readable representation of the target, used for debug printing only.
|
String |
toString(Verbosity verbosity) |
private void |
tryCheckCastSingleImplementor(jdk.internal.jvmci.meta.Assumptions assumptions,
ValueNode receiver,
jdk.internal.jvmci.meta.ResolvedJavaType declaredReceiverType) |
boolean |
verify() |
arguments, generate, invokeKind, setInvokeKind, setTargetMethod, targetMethod
asConstant, asJavaConstant, asNode, 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, successors, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs
public static final NodeClass<MethodCallTargetNode> TYPE
protected final jdk.internal.jvmci.meta.JavaType returnType
protected jdk.internal.jvmci.meta.JavaTypeProfile profile
public MethodCallTargetNode(CallTargetNode.InvokeKind invokeKind, jdk.internal.jvmci.meta.ResolvedJavaMethod targetMethod, ValueNode[] arguments, jdk.internal.jvmci.meta.JavaType returnType, jdk.internal.jvmci.meta.JavaTypeProfile profile)
protected MethodCallTargetNode(NodeClass<? extends MethodCallTargetNode> c, CallTargetNode.InvokeKind invokeKind, jdk.internal.jvmci.meta.ResolvedJavaMethod targetMethod, ValueNode[] arguments, jdk.internal.jvmci.meta.JavaType returnType, jdk.internal.jvmci.meta.JavaTypeProfile profile)
public ValueNode receiver()
null
if this invocation does not take a receiver objectpublic boolean isStatic()
true
if the invocation is a static invocationpublic jdk.internal.jvmci.meta.Kind returnKind()
public static jdk.internal.jvmci.meta.ResolvedJavaMethod findSpecialCallTarget(CallTargetNode.InvokeKind invokeKind, ValueNode receiver, jdk.internal.jvmci.meta.ResolvedJavaMethod targetMethod, jdk.internal.jvmci.meta.ResolvedJavaType contextType)
public void simplify(SimplifierTool tool)
simplify
in interface Simplifiable
simplify
in class Node
private void tryCheckCastSingleImplementor(jdk.internal.jvmci.meta.Assumptions assumptions, ValueNode receiver, jdk.internal.jvmci.meta.ResolvedJavaType declaredReceiverType)
public jdk.internal.jvmci.meta.JavaTypeProfile getProfile()
public Stamp returnStamp()
returnStamp
in class CallTargetNode
public jdk.internal.jvmci.meta.JavaType returnType()
public String targetName()
CallTargetNode
targetName
in class CallTargetNode
public static MethodCallTargetNode find(StructuredGraph graph, jdk.internal.jvmci.meta.ResolvedJavaMethod method)