public final class OptimizedOSRLoopNode extends com.oracle.truffle.api.nodes.LoopNode implements com.oracle.truffle.api.ReplaceObserver
| Modifier and Type | Class and Description |
|---|---|
private static class |
OptimizedOSRLoopNode.OSRRootNode |
| Modifier and Type | Field and Description |
|---|---|
private OptimizedCallTarget |
compiledTarget |
private int |
interpreterLoopCount |
private com.oracle.truffle.api.nodes.RepeatingNode |
repeatableNode |
| Modifier | Constructor and Description |
|---|---|
private |
OptimizedOSRLoopNode(com.oracle.truffle.api.nodes.RepeatingNode repeatableNode) |
| Modifier and Type | Method and Description |
|---|---|
private OptimizedCallTarget |
compileImpl(com.oracle.truffle.api.frame.VirtualFrame frame) |
private void |
compileLoop(com.oracle.truffle.api.frame.VirtualFrame frame) |
private boolean |
compilingLoop(com.oracle.truffle.api.frame.VirtualFrame frame) |
com.oracle.truffle.api.nodes.Node |
copy() |
static com.oracle.truffle.api.nodes.LoopNode |
create(com.oracle.truffle.api.nodes.RepeatingNode repeat) |
void |
executeLoop(com.oracle.truffle.api.frame.VirtualFrame frame) |
com.oracle.truffle.api.nodes.RepeatingNode |
getRepeatingNode() |
private void |
invalidate(Object source,
CharSequence reason) |
boolean |
nodeReplaced(com.oracle.truffle.api.nodes.Node oldNode,
com.oracle.truffle.api.nodes.Node newNode,
CharSequence reason) |
private boolean |
profilingLoop(com.oracle.truffle.api.frame.VirtualFrame frame) |
private void |
reportLoopCount(int reportIterations) |
accept, adoptChildren, assignSourceSection, atomic, atomic, clearSourceSection, clone, createWrapperNode, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLanguage, getParent, getRootNode, getSourceSection, insert, insert, isInstrumentable, isSafelyReplaceableBy, onReplace, probe, replace, replace, toStringprivate int interpreterLoopCount
private OptimizedCallTarget compiledTarget
private com.oracle.truffle.api.nodes.RepeatingNode repeatableNode
private OptimizedOSRLoopNode(com.oracle.truffle.api.nodes.RepeatingNode repeatableNode)
public com.oracle.truffle.api.nodes.Node copy()
copy in class com.oracle.truffle.api.nodes.Nodepublic com.oracle.truffle.api.nodes.RepeatingNode getRepeatingNode()
getRepeatingNode in class com.oracle.truffle.api.nodes.LoopNodepublic void executeLoop(com.oracle.truffle.api.frame.VirtualFrame frame)
executeLoop in class com.oracle.truffle.api.nodes.LoopNodeprivate boolean profilingLoop(com.oracle.truffle.api.frame.VirtualFrame frame)
private boolean compilingLoop(com.oracle.truffle.api.frame.VirtualFrame frame)
private void compileLoop(com.oracle.truffle.api.frame.VirtualFrame frame)
private OptimizedCallTarget compileImpl(com.oracle.truffle.api.frame.VirtualFrame frame)
private void reportLoopCount(int reportIterations)
public boolean nodeReplaced(com.oracle.truffle.api.nodes.Node oldNode, com.oracle.truffle.api.nodes.Node newNode, CharSequence reason)
nodeReplaced in interface com.oracle.truffle.api.ReplaceObserverprivate void invalidate(Object source, CharSequence reason)
public static com.oracle.truffle.api.nodes.LoopNode create(com.oracle.truffle.api.nodes.RepeatingNode repeat)