Author: Carl Friedrich Bolz <cfb...@gmx.de> 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 pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit