public final class InvokeNode extends AbstractMemoryCheckpoint implements Invoke, LIRLowerable, SingleMemoryKill, UncheckedInterfaceProvider
InvokeNode represents all kinds of method calls.Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableInvoke.InlineControlDeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring| Modifier and Type | Field and Description |
|---|---|
protected int |
bci |
protected org.graalvm.word.LocationIdentity |
identity |
protected Invoke.InlineControl |
inlineControl |
protected boolean |
polymorphic |
static NodeClass<InvokeNode> |
TYPE |
stateAfternextNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
InvokeNode(CallTargetNode callTarget,
int bci) |
InvokeNode(CallTargetNode callTarget,
int bci,
org.graalvm.word.LocationIdentity identity) |
InvokeNode(CallTargetNode callTarget,
int bci,
Stamp stamp) |
InvokeNode(CallTargetNode callTarget,
int bci,
Stamp stamp,
org.graalvm.word.LocationIdentity identity) |
InvokeNode(InvokeWithExceptionNode invoke) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
afterClone(Node other) |
FixedNode |
asFixedNode() |
int |
bci() |
CallTargetNode |
callTarget() |
boolean |
canDeoptimize()
Determines if this node needs deoptimization information.
|
ValueNode |
classInit() |
NodeCycles |
estimatedNodeCycles() |
NodeSize |
estimatedNodeSize() |
void |
generate(NodeLIRBuilderTool gen) |
Map<Object,Object> |
getDebugProperties(Map<Object,Object> map)
Fills a
Map with properties of this node for use in debugging (e.g., to view in the
ideal graph visualizer). |
Invoke.InlineControl |
getInlineControl() |
org.graalvm.word.LocationIdentity |
getKilledLocationIdentity()
This method is used to determine which memory location is killed by this node.
|
boolean |
isAllowedUsageType(InputType type) |
boolean |
isPolymorphic()
True if this invocation is almost certainly polymorphic, false when in doubt.
|
void |
setBci(int newBci)
Remember the byte code index (BCI) for code generation or lowering purposes.
|
void |
setClassInit(ValueNode classInit) |
void |
setInlineControl(Invoke.InlineControl control) |
void |
setPolymorphic(boolean value) |
void |
setStateDuring(FrameState stateDuring)
Sets the
FrameState describing the program state during the execution of this
node. |
FrameState |
stateDuring() |
String |
toString(Verbosity verbosity)
Creates a String representation for this node with a given
Verbosity. |
Stamp |
uncheckedStamp()
Returns a stamp containing information about interface types that has not been verified or
null if no such stamp is available.
|
hasSideEffect, setStateAfter, stateAfter, verifyasNode, next, setNextasConstant, asJavaConstant, asSerializableConstant, getStackKind, graph, hasUsagesOtherThan, inferStamp, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, replaceAtAllUsages, replaceAtUsages, setStamp, stamp, updateStampapplyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hashCode, hasMoreThanOneUsage, hasNoUsages, hasOnlyUsagesOfType, hasUsages, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeUsage, replaceAllInputs, replaceAndDelete, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, simplify, successorPositions, successors, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, finalize, getClass, notify, notifyAll, wait, wait, waitcomputeStateDuring, getContextMethod, getContextType, getInvokeKind, getReceiver, getReceiverType, getTargetMethod, next, predecessor, setNext, setUseForInlining, useForInlininghasSideEffect, setStateAfter, stateAfterstatesasNodeisAlive, updateInliningLogAfterClone, updateInliningLogAfterRegisterpublic static final NodeClass<InvokeNode> TYPE
protected int bci
protected boolean polymorphic
protected Invoke.InlineControl inlineControl
protected final org.graalvm.word.LocationIdentity identity
public InvokeNode(CallTargetNode callTarget, int bci)
public InvokeNode(CallTargetNode callTarget, int bci, org.graalvm.word.LocationIdentity identity)
public InvokeNode(CallTargetNode callTarget, int bci, Stamp stamp)
public InvokeNode(CallTargetNode callTarget, int bci, Stamp stamp, org.graalvm.word.LocationIdentity identity)
public InvokeNode(InvokeWithExceptionNode invoke)
protected void afterClone(Node other)
afterClone in class Nodepublic FixedNode asFixedNode()
asFixedNode in interface Invokablepublic CallTargetNode callTarget()
callTarget in interface Invokepublic boolean isPolymorphic()
InvokeisPolymorphic in interface Invokepublic void setPolymorphic(boolean value)
setPolymorphic in interface Invokepublic void setInlineControl(Invoke.InlineControl control)
setInlineControl in interface Invokepublic Invoke.InlineControl getInlineControl()
getInlineControl in interface Invokepublic boolean isAllowedUsageType(InputType type)
isAllowedUsageType in class ValueNodepublic Map<Object,Object> getDebugProperties(Map<Object,Object> map)
NodeMap with properties of this node for use in debugging (e.g., to view in the
ideal graph visualizer). Subclasses overriding this method should also fill the map using
their superclass.getDebugProperties in class Nodepublic org.graalvm.word.LocationIdentity getKilledLocationIdentity()
SingleMemoryKillLocationIdentity.any() will kill all memory locations.getKilledLocationIdentity in interface SingleMemoryKillpublic void generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerablepublic String toString(Verbosity verbosity)
NodeVerbosity.public int bci()
bci in interface DeoptBciSupplierpublic void setBci(int newBci)
DeoptBciSuppliersetBci in interface DeoptBciSupplierpublic boolean canDeoptimize()
DeoptimizingNodecanDeoptimize in interface DeoptimizingNodepublic FrameState stateDuring()
stateDuring in interface DeoptimizingNode.DeoptDuringpublic void setStateDuring(FrameState stateDuring)
DeoptimizingNode.DeoptDuringFrameState describing the program state during the execution of this
node.setStateDuring in interface DeoptimizingNode.DeoptDuringpublic Stamp uncheckedStamp()
UncheckedInterfaceProvideruncheckedStamp in interface UncheckedInterfaceProviderpublic void setClassInit(ValueNode classInit)
setClassInit in interface Invokepublic NodeCycles estimatedNodeCycles()
estimatedNodeCycles in class Nodepublic NodeSize estimatedNodeSize()
estimatedNodeSize in class Node