public abstract class OptimizedOSRLoopNode
extends com.oracle.truffle.api.nodes.LoopNode
implements com.oracle.truffle.api.ReplaceObserver
| Modifier and Type | Field and Description |
|---|---|
protected com.oracle.truffle.api.nodes.RepeatingNode |
repeatingNode |
| Modifier and Type | Method and Description |
|---|---|
com.oracle.truffle.api.nodes.Node |
copy() |
static com.oracle.truffle.api.nodes.LoopNode |
create(com.oracle.truffle.api.nodes.RepeatingNode repeat)
Creates the default loop node implementation with the default configuration.
|
protected org.graalvm.compiler.truffle.runtime.OptimizedOSRLoopNode.AbstractLoopOSRRootNode |
createRootNode(com.oracle.truffle.api.frame.FrameDescriptor rootFrameDescriptor,
Class<? extends com.oracle.truffle.api.frame.VirtualFrame> clazz) |
Object |
execute(com.oracle.truffle.api.frame.VirtualFrame frame) |
void |
forceOSR()
Forces OSR compilation for this loop.
|
OptimizedCallTarget |
getCompiledOSRLoop() |
com.oracle.truffle.api.nodes.RepeatingNode |
getRepeatingNode() |
protected boolean |
inject(boolean condition) |
boolean |
nodeReplaced(com.oracle.truffle.api.nodes.Node oldNode,
com.oracle.truffle.api.nodes.Node newNode,
CharSequence reason) |
protected void |
profileCounted(long iterations) |
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, onReplace, replace, replace, reportPolymorphicSpecialize, toStringprotected org.graalvm.compiler.truffle.runtime.OptimizedOSRLoopNode.AbstractLoopOSRRootNode createRootNode(com.oracle.truffle.api.frame.FrameDescriptor rootFrameDescriptor,
Class<? extends com.oracle.truffle.api.frame.VirtualFrame> clazz)
rootFrameDescriptor - may be null.public final com.oracle.truffle.api.nodes.Node copy()
copy in class com.oracle.truffle.api.nodes.Nodepublic Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
execute in class com.oracle.truffle.api.nodes.LoopNodepublic final void forceOSR()
public final OptimizedCallTarget getCompiledOSRLoop()
public final 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.ReplaceObserverpublic static com.oracle.truffle.api.nodes.LoopNode create(com.oracle.truffle.api.nodes.RepeatingNode repeat)
OptimizedLoopNode will be used instead.public final com.oracle.truffle.api.nodes.RepeatingNode getRepeatingNode()
getRepeatingNode in class com.oracle.truffle.api.nodes.LoopNodeprotected final void profileCounted(long iterations)
protected final boolean inject(boolean condition)