public class MethodCallTargetNode extends CallTargetNode implements IterableNodeType, Simplifiable
CallTargetNode.InvokeKindNode.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable| Modifier and Type | Field and Description |
|---|---|
protected JavaTypeProfile |
profile |
protected JavaType |
returnType |
static NodeClass<MethodCallTargetNode> |
TYPE |
arguments, invokeKind, targetMethodNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
|
MethodCallTargetNode(CallTargetNode.InvokeKind invokeKind,
ResolvedJavaMethod targetMethod,
ValueNode[] arguments,
JavaType returnType,
JavaTypeProfile profile) |
protected |
MethodCallTargetNode(NodeClass<? extends MethodCallTargetNode> c,
CallTargetNode.InvokeKind invokeKind,
ResolvedJavaMethod targetMethod,
ValueNode[] arguments,
JavaType returnType,
JavaTypeProfile profile) |
| Modifier and Type | Method and Description |
|---|---|
static MethodCallTargetNode |
find(StructuredGraph graph,
ResolvedJavaMethod method) |
static ResolvedJavaMethod |
findSpecialCallTarget(CallTargetNode.InvokeKind invokeKind,
ValueNode receiver,
ResolvedJavaMethod targetMethod,
ResolvedJavaType contextType) |
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.
|
Kind |
returnKind() |
Stamp |
returnStamp() |
JavaType |
returnType() |
void |
simplify(SimplifierTool tool)
Must be overridden by subclasses that implement
Simplifiable. |
String |
targetName()
A human-readable representation of the target, used for debug printing only.
|
String |
toString(Verbosity verbosity)
Creates a String representation for this node with a given
Verbosity. |
private void |
tryCheckCastSingleImplementor(Assumptions assumptions,
ValueNode receiver,
ResolvedJavaType declaredReceiverType) |
boolean |
verify() |
arguments, generate, invokeKind, setInvokeKind, setTargetMethod, targetMethodasConstant, asJavaConstant, asNode, 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, successors, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputspublic static final NodeClass<MethodCallTargetNode> TYPE
protected final JavaType returnType
protected JavaTypeProfile profile
public MethodCallTargetNode(CallTargetNode.InvokeKind invokeKind, ResolvedJavaMethod targetMethod, ValueNode[] arguments, JavaType returnType, JavaTypeProfile profile)
protected MethodCallTargetNode(NodeClass<? extends MethodCallTargetNode> c, CallTargetNode.InvokeKind invokeKind, ResolvedJavaMethod targetMethod, ValueNode[] arguments, JavaType returnType, 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 Kind returnKind()
public String toString(Verbosity verbosity)
NodeVerbosity.public static ResolvedJavaMethod findSpecialCallTarget(CallTargetNode.InvokeKind invokeKind, ValueNode receiver, ResolvedJavaMethod targetMethod, ResolvedJavaType contextType)
public void simplify(SimplifierTool tool)
NodeSimplifiable. The implementation in
Node exists to obviate the need to cast a node before invoking
Simplifiable.simplify(SimplifierTool).simplify in interface Simplifiablesimplify in class Nodeprivate void tryCheckCastSingleImplementor(Assumptions assumptions, ValueNode receiver, ResolvedJavaType declaredReceiverType)
public JavaTypeProfile getProfile()
public Stamp returnStamp()
returnStamp in class CallTargetNodepublic JavaType returnType()
public String targetName()
CallTargetNodetargetName in class CallTargetNodepublic static MethodCallTargetNode find(StructuredGraph graph, ResolvedJavaMethod method)