Author: Hakan Ardo <ha...@debian.org> Branch: extradoc Changeset: r3716:fa890ec5df5e Date: 2011-06-16 19:59 +0200 http://bitbucket.org/pypy/extradoc/changeset/fa890ec5df5e/
Log: always optimize original trace diff --git a/talk/iwtc11/paper.tex b/talk/iwtc11/paper.tex --- a/talk/iwtc11/paper.tex +++ b/talk/iwtc11/paper.tex @@ -683,7 +683,9 @@ $L_1$($p_{0}$, $p_{5}$, $i_3$, $i_4$): # inside f: y = y.add(step) +guard_class($p_{5}$, BoxedInteger) # inside BoxedInteger.add + guard_class($p_{0}$, BoxedInteger) # inside BoxedInteger.add__int $i_{8}$ = $i_{4}+i_{3}$ $p_{9}$ = new(BoxedInteger) @@ -694,7 +696,7 @@ Note how the loop invaraint \lstinline{get} on $p_0$ was moved out of the loop, and how the non loop invariant \lstinline{get} on $p_5$ was -removed entierly. +removed entierly. \subsection{Common Subexpression Elimination} If a pure operation appears more than once in the trace with same input @@ -920,15 +922,13 @@ used unchanged. The only interaction needed between the loop peeling and the other optimizations is during the constructing of the jump arguments -connecting the peeled of iteration (the preamble) with the loop body. This +connecting the peeled of iteration (the preamble) with the peeled loop. This approach improves the effect of standard optimizations such as redundant guard removal, heap caching, common subexpression elimination and allocation removals. The most prominent effect is that they all become loop invariant code motion optimizations. -XXX: is ``loop body'' or ``peeled loop'' the preferable term? - By using several benchmarks we show that the proposed algorithm can significantly improve the run time of small loops containing numerical _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit