public abstract class SLScopedNode
extends com.oracle.truffle.api.nodes.Node
NodeLibrary provides fast access to local variables. It's used
by tools like debugger, profiler, tracer, etc. To provide good performance, we cache write nodes
that declare variables and use them in the interop contract.| Constructor and Description |
|---|
SLScopedNode() |
| Modifier and Type | Method and Description |
|---|---|
com.oracle.truffle.api.nodes.Node |
findBlock()
Find block of this node.
|
protected int |
getVisibleVariablesIndexOnEnter()
Provide the index that determines variables on node enter.
|
boolean |
hasScope(com.oracle.truffle.api.frame.Frame frame)
We do provide a scope.
|
void |
setVisibleVariablesIndexOnEnter(int index)
Set the index to the the
block's variables
that determine variables belonging into this scope (excluding parent scopes) on node enter. |
void |
setVisibleVariablesIndexOnExit(int index)
Similar to
SLScopedNode.setVisibleVariablesIndexOnEnter(int), but determines variables on node
exit. |
accept, adoptChildren, atomic, atomic, copy, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, onReplace, replace, replace, reportPolymorphicSpecialize, toStringpublic boolean hasScope(com.oracle.truffle.api.frame.Frame frame)
public final com.oracle.truffle.api.nodes.Node findBlock()
SLBlockNode. If
none is found, RootNode is returned.public final void setVisibleVariablesIndexOnEnter(int index)
block's variables
that determine variables belonging into this scope (excluding parent scopes) on node enter.public final void setVisibleVariablesIndexOnExit(int index)
SLScopedNode.setVisibleVariablesIndexOnEnter(int), but determines variables on node
exit.protected final int getVisibleVariablesIndexOnEnter()