public final class DeoptimizedFrame extends Object
Deoptimizer
.
In addition to the instance fields, the DeoptimizedFrame
also has same reserved space for
the return value registers. This is used by Deoptimizer.deoptStub(com.oracle.svm.core.deopt.DeoptimizedFrame)
for restoring the
original return values.
Modifier and Type | Class and Description |
---|---|
static interface |
DeoptimizedFrame.ReserveDeoptScratchSpace
Used to let the universe builder reserve some space in the instance layout for storing return
value registers.
|
static class |
DeoptimizedFrame.VirtualFrame
Heap-based representation of a future baseline-compiled stack frame, i.e., the intermediate
representation between deoptimization of an optimized frame and the stack-frame rewriting.
|
Modifier and Type | Method and Description |
---|---|
protected void |
buildContent(org.graalvm.word.Pointer newSp)
Fills the target content from the
virtual frame information. |
protected static DeoptimizedFrame |
factory(int targetContentSize,
long sourceTotalFrameSize,
SubstrateInstalledCode sourceInstalledCode,
DeoptimizedFrame.VirtualFrame topFrame,
org.graalvm.nativeimage.c.function.CodePointer sourcePC) |
org.graalvm.nativeimage.PinnedObject |
getPin()
Returns the
PinnedObject that ensures that this DeoptimizedFrame is not moved
by the GC. |
static int |
getScratchSpaceOffset()
Returns the offset of the scratch space in the object.
|
SubstrateInstalledCode |
getSourceInstalledCode()
Returns the
InstalledCode of the deoptimized method, or null . |
org.graalvm.nativeimage.c.function.CodePointer |
getSourcePC()
The code address inside the source method (= the method to deoptimize).
|
long |
getSourceTotalFrameSize()
The frame size of the deoptimized method.
|
protected com.oracle.svm.core.deopt.Deoptimizer.TargetContent |
getTargetContent()
The new stack content for the target methods.
|
DeoptimizedFrame.VirtualFrame |
getTopFrame()
The top frame, i.e., the innermost callee of the inlining hierarchy.
|
void |
takeException()
Rewrites the first return address entry to the exception handler.
|
public static int getScratchSpaceOffset()
protected static DeoptimizedFrame factory(int targetContentSize, long sourceTotalFrameSize, SubstrateInstalledCode sourceInstalledCode, DeoptimizedFrame.VirtualFrame topFrame, org.graalvm.nativeimage.c.function.CodePointer sourcePC)
public long getSourceTotalFrameSize()
public SubstrateInstalledCode getSourceInstalledCode()
InstalledCode
of the deoptimized method, or null
. If a runtime
compiled method has been invalidated, the InstalledCode
is no longer available. No
InstalledCode
is available for native image methods (which are only deoptimized
during deoptimization testing).public DeoptimizedFrame.VirtualFrame getTopFrame()
protected com.oracle.svm.core.deopt.Deoptimizer.TargetContent getTargetContent()
DeoptimizedFrame.VirtualFrame
s.public org.graalvm.nativeimage.PinnedObject getPin()
PinnedObject
that ensures that this DeoptimizedFrame
is not moved
by the GC. The DeoptimizedFrame
is accessed during GC when walking the stack.public org.graalvm.nativeimage.c.function.CodePointer getSourcePC()
protected void buildContent(org.graalvm.word.Pointer newSp)
virtual frame
information. This method
must be uninterruptible.newSp
- the new stack pointer where execution will eventually continuepublic void takeException()