Package com.oracle.truffle.api.impl
Class DefaultDirectCallNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.DirectCallNode
com.oracle.truffle.api.impl.DefaultDirectCallNode
- All Implemented Interfaces:
NodeInterface,Cloneable
This is runtime specific API. Do not use in a guest language.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.oracle.truffle.api.nodes.Node
Node.Child, Node.Children -
Field Summary
Fields inherited from class com.oracle.truffle.api.nodes.DirectCallNode
callTarget -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncall(VirtualFrame frame, Object[] arguments) Calls the innerCallTargetreturned byDirectCallNode.getCurrentCallTarget().booleanClones theCallTargetinstance returned byDirectCallNode.getCallTarget()in an uninitialized state for thisDirectCallNode.voidEnforces the runtime system to inline theCallTargetat this call site.Returns the splitCallTargetif this call site'sCallTargetis cloned.booleanReturnstrueif the runtime system supports cloning and theRootNodereturnstrueinRootNode.isCloningAllowed().booleanReturnstrueif the underlying runtime system supports inlining for theCallTargetin thisDirectCallNode.booleanReturnstrueif theCallTargetis forced to be inlined.Methods inherited from class com.oracle.truffle.api.nodes.DirectCallNode
getCallTarget, getCurrentCallTarget, getCurrentRootNode, isCallTargetCloned, isInlined, toStringMethods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, assignSourceSection, atomic, atomic, clearSourceSection, clone, copy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLanguage, getParent, getRootNode, getSourceSection, insert, insert, isReplaceable, onAdopt, onReplace, replace, replace
-
Constructor Details
-
DefaultDirectCallNode
-
-
Method Details
-
call
Description copied from class:DirectCallNodeCalls the innerCallTargetreturned byDirectCallNode.getCurrentCallTarget().- Specified by:
callin classDirectCallNodearguments- the arguments that should be passed to the callee- Returns:
- the return result of the call
-
forceInlining
public void forceInlining()Description copied from class:DirectCallNodeEnforces the runtime system to inline theCallTargetat this call site. If the runtime system does not support inlining or it is already inlined this method has no effect. The runtime system may decide to not inline calls which were forced to inline.- Specified by:
forceInliningin classDirectCallNode
-
isInliningForced
public boolean isInliningForced()Description copied from class:DirectCallNodeReturnstrueif theCallTargetis forced to be inlined. ADirectCallNodecan either be inlined manually by invokingDirectCallNode.forceInlining()or by the runtime system which may at any point decide to inline.- Specified by:
isInliningForcedin classDirectCallNode- Returns:
- true if this method was inlined else false.
-
getClonedCallTarget
Description copied from class:DirectCallNodeReturns the splitCallTargetif this call site'sCallTargetis cloned.- Specified by:
getClonedCallTargetin classDirectCallNode- Returns:
- the split
CallTarget
-
cloneCallTarget
public boolean cloneCallTarget()Description copied from class:DirectCallNodeClones theCallTargetinstance returned byDirectCallNode.getCallTarget()in an uninitialized state for thisDirectCallNode. This can be sensible to gather call site sensitive profiling information for thisDirectCallNode. IfDirectCallNode.isCallTargetCloningAllowed()returnsfalsethis method has no effect and returnsfalse.- Specified by:
cloneCallTargetin classDirectCallNode
-
isCallTargetCloningAllowed
public boolean isCallTargetCloningAllowed()Description copied from class:DirectCallNodeReturnstrueif the runtime system supports cloning and theRootNodereturnstrueinRootNode.isCloningAllowed().- Specified by:
isCallTargetCloningAllowedin classDirectCallNode- Returns:
trueif the target is allowed to be cloned.
-
isInlinable
public boolean isInlinable()Description copied from class:DirectCallNodeReturnstrueif the underlying runtime system supports inlining for theCallTargetin thisDirectCallNode.- Specified by:
isInlinablein classDirectCallNode- Returns:
- true if inlining is supported.
-