public abstract class IndirectCallNode extends Node
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.for faster calls with a constantly known {@link CallTarget}.
Node.Child, Node.Children
Modifier | Constructor and Description |
---|---|
protected |
IndirectCallNode()
Constructor for implementation subclasses.
|
Modifier and Type | Method and Description |
---|---|
abstract Object |
call(CallTarget target,
Object... arguments)
Performs an indirect call to the given
CallTarget target with the provided arguments. |
static IndirectCallNode |
create() |
static IndirectCallNode |
getUncached()
Returns an uncached version of an indirect call 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
protected IndirectCallNode()
public abstract Object call(CallTarget target, Object... arguments)
CallTarget
target with the provided arguments.target
- the CallTarget
to callarguments
- the arguments to providepublic static IndirectCallNode create()
public static IndirectCallNode getUncached()
current encapsulating node
as source
location.