Author: Carl Friedrich Bolz <[email protected]>
Branch: extradoc
Changeset: r4364:d0eac0df9aa5
Date: 2012-07-25 11:02 +0200
http://bitbucket.org/pypy/extradoc/changeset/d0eac0df9aa5/
Log: write about hotspot and escape analysis
diff --git a/talk/vmil2012/paper.tex b/talk/vmil2012/paper.tex
--- a/talk/vmil2012/paper.tex
+++ b/talk/vmil2012/paper.tex
@@ -486,6 +486,11 @@
\subsection{Deoptimization in Method-Based JITs}
\label{sub:Deoptimization in Method-Based JITs}
+Deoptimization in method-based JITs is used if one of the assumptions
+of the code generated by a JIT-compiler changes.
+This is often the case when new code is added to the system,
+or when the programmer tries to debug the program.
+
Deutsch et. al.~\cite{XXX} describe the use of stack descriptions
to make it possible to do source-level debugging of JIT-compiled code.
Self uses deoptimization to reach the same goal~\cite{XXX}.
@@ -496,6 +501,23 @@
The scope descriptors are between 0.45 and 0.76 times
the size of the generated machine code.
+Java Hotspot~\cite{XXX} contains a deoptimization framework that is used
+for debugging and when an uncommon trap is triggered.
+To be able to do this, Hotspot stores a mapping from optimized states
+back to the interpreter state at various deoptimization points.
+There is no discussion of the memory use of this information.
+
+The deoptimization information of Hotspot is extended
+to support correct behaviour
+when scalar replacement of fields is done for non-escaping objects~\cite{XXX}.
+The approach is extremely similar to how RPython's JIT handles virtual objects.
+For every object that is not allocated in the code,
+the deoptimization information contains a description
+of the content of the fields.
+When deoptimizing code, these objects are reallocated
+and their fields filled with the values
+described by the deoptimization information.
+The paper does not describe any attempts to store this information compactly.
% subsection Deoptimization in Method-Based JITs (end)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit