[pypy-svn] r60578 - pypy/extradoc/talk/ecoop2009
cfbolz at codespeak.net
cfbolz at codespeak.net
Thu Dec 18 16:25:00 CET 2008
Author: cfbolz
Date: Thu Dec 18 16:24:59 2008
New Revision: 60578
Modified:
pypy/extradoc/talk/ecoop2009/benchmarks.tex
pypy/extradoc/talk/ecoop2009/jitgen.tex
pypy/extradoc/talk/ecoop2009/main.bib
pypy/extradoc/talk/ecoop2009/rainbow.tex
Log:
kill a footnote, add a reference
Modified: pypy/extradoc/talk/ecoop2009/benchmarks.tex
==============================================================================
--- pypy/extradoc/talk/ecoop2009/benchmarks.tex (original)
+++ pypy/extradoc/talk/ecoop2009/benchmarks.tex Thu Dec 18 16:24:59 2008
@@ -235,13 +235,13 @@
\item The object is still allocated on the heap, and thus there is an extra
level of indirection to access the \lstinline{value} field.
\item The method call is optimized through a \emph{polymorphic inline cache}
- (XXX: citation needed), that requires a guard check at each iteration.
+ \cite{hoelzle_optimizing_1991}, that requires a guard check at each iteration.
\end{itemize}
\anto{maybe we should move the following paragraph to
abstract/introduction/conclusion?}
-Despite being only a microbenchark, this result is very important as it proves
+Despite being only a microbenchmarks, this result is very important as it proves
that our strategy of intermixing compile time and runtime can yield to better
performances than current techniques. The result is even more impressive if
we consider dynamically typed languages as TLC are usually considered much
Modified: pypy/extradoc/talk/ecoop2009/jitgen.tex
==============================================================================
--- pypy/extradoc/talk/ecoop2009/jitgen.tex (original)
+++ pypy/extradoc/talk/ecoop2009/jitgen.tex Thu Dec 18 16:24:59 2008
@@ -220,7 +220,7 @@
branches are taken in the residual graph.
\end{itemize}
-\subsubsection{Hints}
+\subsection{Hints}
Our goal in designing our approach to binding-time analysis was to
minimize the number of explicit hints that the user must provide in
Modified: pypy/extradoc/talk/ecoop2009/main.bib
==============================================================================
--- pypy/extradoc/talk/ecoop2009/main.bib (original)
+++ pypy/extradoc/talk/ecoop2009/main.bib Thu Dec 18 16:24:59 2008
@@ -49,3 +49,23 @@
year = {2006},
pages = {944-953},
}
+
+ at inproceedings{hoelzle_optimizing_1991,
+ title = {Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches},
+ isbn = {3-540-54262-0},
+ url = {http://portal.acm.org/citation.cfm?id=679193\&dl=ACM\&coll=portal},
+ booktitle = {Proceedings of the European Conference on Object-Oriented Programming},
+ publisher = {Springer-Verlag},
+ author = {Urs H{\"o}lzle and Craig Chambers and David Ungar},
+ year = {1991},
+ pages = {21-38}
+}
+
+ at book{Jones:peval,
+ author = {Jones, Neil D. and Gomard, Carsten K. and Sestoft, Peter},
+ title = {Partial Evaluation and Automatic Program Generation},
+ publisher = {Prentice Hall},
+ year = 1993,
+}
+
+
Modified: pypy/extradoc/talk/ecoop2009/rainbow.tex
==============================================================================
--- pypy/extradoc/talk/ecoop2009/rainbow.tex (original)
+++ pypy/extradoc/talk/ecoop2009/rainbow.tex Thu Dec 18 16:24:59 2008
@@ -57,7 +57,7 @@
techniques are crucial for good results. The main goal is to
optimize and reduce the overhead of dynamic dispatching and indirect
invocation. This is achieved with variations on the technique of
-polymorphic inline caches \cite{XXX}: the dynamic lookups are cached and
+polymorphic inline caches \cite{hoelzle_optimizing_1991}: the dynamic lookups are cached and
the corresponding generated machine code contains chains of
compare-and-jump instructions which are modified at run-time. These
techniques also allow the gathering of information to direct inlining for even
@@ -71,10 +71,7 @@
at compile-time, it can first be read at run-time out of the object and
promoted to compile-time. As we will see in the sequel, this produces
machine code very similar to that of polymorphic inline
-caches\footnote{Promotion can also be seen as a generalization of
-a partial evaluation transformation called "The Trick" (see e.g. \cite{XXX}),
-which again produces similar code but which is only applicable for finite sets
-of values.}.
+caches.
The essential advantage of promotion is that it is no longer tied to the details of
the dispatch semantics of the language being interpreted, but applies in
More information about the Pypy-commit
mailing list