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, toString
private 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.Node
public com.oracle.truffle.api.nodes.RepeatingNode getRepeatingNode()
getRepeatingNode
in class com.oracle.truffle.api.nodes.LoopNode
public void executeLoop(com.oracle.truffle.api.frame.VirtualFrame frame)
executeLoop
in class com.oracle.truffle.api.nodes.LoopNode
private 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.ReplaceObserver
private void invalidate(Object source, CharSequence reason)
public static com.oracle.truffle.api.nodes.LoopNode create(com.oracle.truffle.api.nodes.RepeatingNode repeat)