public abstract class CallTargetNode extends ValueNode implements LIRLowerable
Modifier and Type | Class and Description |
---|---|
static class |
CallTargetNode.InvokeKind |
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Modifier and Type | Field and Description |
---|---|
protected NodeInputList<ValueNode> |
arguments |
protected CallTargetNode.InvokeKind |
invokeKind |
protected ResolvedJavaMethod |
targetMethod |
static NodeClass<CallTargetNode> |
TYPE |
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
protected |
CallTargetNode(NodeClass<? extends CallTargetNode> c,
List<ValueNode> arguments,
ResolvedJavaMethod targetMethod,
CallTargetNode.InvokeKind invokeKind) |
protected |
CallTargetNode(NodeClass<? extends CallTargetNode> c,
ValueNode[] arguments,
ResolvedJavaMethod targetMethod,
CallTargetNode.InvokeKind invokeKind) |
Modifier and Type | Method and Description |
---|---|
NodeInputList<ValueNode> |
arguments() |
void |
generate(NodeLIRBuilderTool gen) |
CallTargetNode.InvokeKind |
invokeKind() |
abstract Stamp |
returnStamp() |
void |
setInvokeKind(CallTargetNode.InvokeKind kind) |
void |
setTargetMethod(ResolvedJavaMethod method) |
ResolvedJavaMethod |
targetMethod()
Gets the target method for this invocation instruction.
|
abstract String |
targetName()
A human-readable representation of the target, used for debug printing only.
|
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, simplify, successors, toString, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verify, verifyEdges, verifyInputs
public static final NodeClass<CallTargetNode> TYPE
protected NodeInputList<ValueNode> arguments
protected ResolvedJavaMethod targetMethod
protected CallTargetNode.InvokeKind invokeKind
protected CallTargetNode(NodeClass<? extends CallTargetNode> c, ValueNode[] arguments, ResolvedJavaMethod targetMethod, CallTargetNode.InvokeKind invokeKind)
protected CallTargetNode(NodeClass<? extends CallTargetNode> c, List<ValueNode> arguments, ResolvedJavaMethod targetMethod, CallTargetNode.InvokeKind invokeKind)
public NodeInputList<ValueNode> arguments()
public abstract Stamp returnStamp()
public abstract String targetName()
public void generate(NodeLIRBuilderTool gen)
generate
in interface LIRLowerable
public void setTargetMethod(ResolvedJavaMethod method)
public ResolvedJavaMethod targetMethod()
public CallTargetNode.InvokeKind invokeKind()
public void setInvokeKind(CallTargetNode.InvokeKind kind)