Package com.oracle.truffle.api.nodes
Class IndirectCallNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.IndirectCallNode
- All Implemented Interfaces:
NodeInterface
,Cloneable
Represents an indirect call to a
CallTarget
. Indirect calls are calls for which the
CallTarget
may change dynamically for each consecutive call. This part of the Truffle API
enables the runtime system to perform additional optimizations on indirect calls.
Please note: This class is not intended to be sub classed by guest language implementations.
See DirectCallNode
for faster calls with a constantly known CallTarget
.
- Since:
- 0.8 or earlier
-
Nested Class Summary
Nested classes/interfaces inherited from class com.oracle.truffle.api.nodes.Node
Node.Child, Node.Children
-
Constructor Summary
ModifierConstructorDescriptionprotected
Constructor for implementation subclasses. -
Method Summary
Modifier and TypeMethodDescriptionabstract Object
call
(CallTarget target, Object... arguments) Performs an indirect call to the givenCallTarget
target with the provided arguments.static IndirectCallNode
create()
Creates cached indirect call node using bytecode index-1
.static IndirectCallNode
Returns an uncached version of an indirect call node.Methods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, atomic, atomic, copy, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, onReplace, replace, replace, reportPolymorphicSpecialize, reportReplace, toString
-
Constructor Details
-
IndirectCallNode
protected IndirectCallNode()Constructor for implementation subclasses.- Since:
- 0.8 or earlier
-
-
Method Details
-
call
Performs an indirect call to the givenCallTarget
target with the provided arguments.- Parameters:
target
- theCallTarget
to callarguments
- the arguments to provide- Returns:
- the return value of the call
- Since:
- 0.23
-
create
Creates cached indirect call node using bytecode index-1
.- Since:
- 0.8 or earlier
-
getUncached
Returns an uncached version of an indirect call node. Uncached versions of an indirect call node use thecurrent encapsulating node
as source location.- Since:
- 19.0
-