Class OptimizedOSRLoopNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.LoopNode
com.oracle.truffle.runtime.OptimizedOSRLoopNode
- All Implemented Interfaces:
com.oracle.truffle.api.nodes.NodeInterface, com.oracle.truffle.api.ReplaceObserver, Cloneable
public abstract class OptimizedOSRLoopNode
extends com.oracle.truffle.api.nodes.LoopNode
implements com.oracle.truffle.api.ReplaceObserver
Loop node implementation that supports on-stack-replacement with compiled code.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.Children -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.oracle.truffle.api.nodes.RepeatingNode -
Method Summary
Modifier and TypeMethodDescriptionfinal com.oracle.truffle.api.nodes.Nodecopy()static com.oracle.truffle.api.nodes.LoopNodecreate(com.oracle.truffle.api.nodes.RepeatingNode repeat) Creates the default loop node implementation with the default configuration.protected com.oracle.truffle.runtime.OptimizedOSRLoopNode.AbstractLoopOSRRootNodecreateRootNode(com.oracle.truffle.api.frame.FrameDescriptor rootFrameDescriptor, Class<? extends com.oracle.truffle.api.frame.VirtualFrame> clazz) execute(com.oracle.truffle.api.frame.VirtualFrame frame) final voidforceOSR()Forces OSR compilation for this loop.final OptimizedCallTargetfinal com.oracle.truffle.api.nodes.RepeatingNodeprotected final booleaninject(boolean condition) final booleannodeReplaced(com.oracle.truffle.api.nodes.Node oldNode, com.oracle.truffle.api.nodes.Node newNode, CharSequence reason) protected final voidprofileCounted(long iterations) Methods inherited from class com.oracle.truffle.api.nodes.LoopNode
reportLoopCountMethods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, onReplace, replace, replace, reportPolymorphicSpecialize, reportReplace, toString
-
Field Details
-
repeatingNode
protected com.oracle.truffle.api.nodes.RepeatingNode repeatingNode
-
-
Method Details
-
createRootNode
protected com.oracle.truffle.runtime.OptimizedOSRLoopNode.AbstractLoopOSRRootNode createRootNode(com.oracle.truffle.api.frame.FrameDescriptor rootFrameDescriptor, Class<? extends com.oracle.truffle.api.frame.VirtualFrame> clazz) - Parameters:
rootFrameDescriptor- may benull.
-
copy
public final com.oracle.truffle.api.nodes.Node copy()- Overrides:
copyin classcom.oracle.truffle.api.nodes.Node
-
execute
- Overrides:
executein classcom.oracle.truffle.api.nodes.LoopNode
-
forceOSR
public final void forceOSR()Forces OSR compilation for this loop. -
getCompiledOSRLoop
-
nodeReplaced
public final boolean nodeReplaced(com.oracle.truffle.api.nodes.Node oldNode, com.oracle.truffle.api.nodes.Node newNode, CharSequence reason) - Specified by:
nodeReplacedin interfacecom.oracle.truffle.api.ReplaceObserver
-
create
public 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. If OSR is disabledOptimizedLoopNodewill be used instead. -
getRepeatingNode
public final com.oracle.truffle.api.nodes.RepeatingNode getRepeatingNode()- Specified by:
getRepeatingNodein classcom.oracle.truffle.api.nodes.LoopNode
-
profileCounted
protected final void profileCounted(long iterations) -
inject
protected final boolean inject(boolean condition)
-