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&#8211;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

Reply via email to