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, toStringprotected 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.