<p>I believe mozilla worked on this issue.  if.you&#39;re interested in this perhaps we should get you in contact with them.</p>
<div class="gmail_quote">On Aug 20, 2011 3:35 AM, &quot;Hakan Ardo&quot; &lt;<a href="mailto:hakan@debian.org">hakan@debian.org</a>&gt; wrote:<br type="attribution">&gt; Hi,<br>&gt; I&#39;ve been experimenting a bit with heuristics such as &quot;not retracing<br>
&gt; loops with a lot of guards&quot; or &quot;not unrolling if the peel loop is not<br>&gt; much better than the preamble&quot;. In some situations is seem possible to<br>&gt; increase performace by such means (go: +37%, html5lib: +13%, rietveld:<br>
&gt; +8%). However I think the real problem is that we duplicate guards and<br>&gt; that this leads to an explosion of bridges. I added<br>&gt; test_excessive_bridgeing to test_ajit on the jit-limit_peeling branch.<br>&gt; It is a simple example where the last part of the loop is traced 8<br>
&gt; times producing 8 identical bridges.<br>&gt; <br>&gt; Is there any chance of identifying copies of &quot;the same guard&quot; (in some<br>&gt; sens that considers both the address of the guard and the state of<br>&gt; virtuals) and when the second copy of the guards is about to be traced<br>
&gt; we would just connect it to the already compiled bridge? Maybe by<br>&gt; producing a small header-bridge that moves things around and then<br>&gt; jumps to the already compiled bridge?<br>&gt; <br>&gt; -- <br>&gt; Håkan Ardö<br>
&gt; _______________________________________________<br>&gt; pypy-dev mailing list<br>&gt; <a href="mailto:pypy-dev@python.org">pypy-dev@python.org</a><br>&gt; <a href="http://mail.python.org/mailman/listinfo/pypy-dev">http://mail.python.org/mailman/listinfo/pypy-dev</a><br>
</div>