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
ConstructorsModifierConstructorDescriptionprotectedConstructor for implementation subclasses. -
Method Summary
Modifier and TypeMethodDescriptionabstract Objectcall(CallTarget target, Object... arguments) Performs an indirect call to the givenCallTargettarget with the provided arguments.static IndirectCallNodecreate()Creates cached indirect call node using bytecode index-1.static IndirectCallNodeReturns 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, toString
-
Constructor Details
-
IndirectCallNode
protected IndirectCallNode()Constructor for implementation subclasses.- Since:
- 0.8 or earlier
-
-
Method Details
-
call
Performs an indirect call to the givenCallTargettarget with the provided arguments.- Parameters:
target- theCallTargetto 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 nodeas source location.- Since:
- 19.0
-