Author: Carl Friedrich Bolz <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit