Author: Carl Friedrich Bolz <cfb...@gmx.de> Branch: extradoc Changeset: r3766:d400e26f964a Date: 2011-06-21 15:05 +0200 http://bitbucket.org/pypy/extradoc/changeset/d400e26f964a/
Log: expand related work somewhat diff --git a/talk/iwtc11/paper.bib b/talk/iwtc11/paper.bib --- a/talk/iwtc11/paper.bib +++ b/talk/iwtc11/paper.bib @@ -91,6 +91,24 @@ pages = {141–154} }, +@book{muchnick_advanced_1997, + title = {Advanced Compiler Design and Implementation}, + isbn = {9781558603202}, + publisher = {Morgan Kaufmann}, + author = {Muchnick, Steven S. and Muchnick}, + month = sep, + year = {1997} +}, + +@misc{pall_luajit_2009, + title = {{LuaJIT} 2.0 intellectual property disclosure and research opportunities}, + note = {http://lua-users.org/lists/lua-l/2009-11/msg00089.html (accessed + June 2011)}, + author = {Pall, Mike}, + month = nov, + year = {2009} +}, + @inproceedings{chang_tracing_2009, address = {Washington, {DC}}, title = {Tracing for Web 3.0: Trace Compilation for the Next Generation Web Applications}, @@ -318,4 +336,4 @@ publisher = {{ACM}}, author = {Sullivan, Gregory T. and Bruening, Derek L. and Baron, Iris and Garnett, Timothy and Amarasinghe, Saman}, year = {2003} -} \ No newline at end of file +} diff --git a/talk/iwtc11/paper.tex b/talk/iwtc11/paper.tex --- a/talk/iwtc11/paper.tex +++ b/talk/iwtc11/paper.tex @@ -876,7 +876,7 @@ } \end{center} \label{fig:benchmarks} -\caption{XXX} +\caption{Benchmark Results in Seconds} \end{figure*} \subsection{Python} @@ -967,13 +967,26 @@ \section{Related Work} \label{sec:related} -All the optimizations presented here are completely standard \cite{XXX} [dragon -book or similar]. +All the optimizations presented here are completely standard +\cite{muchnick_advanced_1997}. XXX -LuaJIT does the same +Mike Pall, the author of LuaJIT\footnote{\texttt{http://luajit.org/}} seems to +have developped the described technique independently. There are no papers about +LuaJIT but the author of it writes on a mailing list: "The LOOP pass does +synthetic unrolling of the recorded IR, combining copy-substitution with +redundancy elimination to achieve code hoisting. The unrolled and +copy-substituted instructions are simply fed back into the compiler pipeline, +which allows reuse of all optimizations for redundancy elimination. Loop +recurrences are detected on-the-fly and a minimized set of PHIs is generated." +\cite{pall_luajit_2009} -SPUR does all these optimizations manually, moves allocations out of loop but -does not explode objects +SPUR \cite{bebenita_spur:_2010} implements loop-invariant code motion +directly, by explicitly marking as loop-invariant all variables that stay the +same along all looping paths and then moving all pure computation that depends +only on these variables out of the loop. SPUR can also hoist loads out of the +loop if nothing in the loop can ever write to the memory location. It can also +move allocations out of the loop, but does not replace the object by its fields. +This saves only the allocation, not the access to the object fields. XXX _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit