[pypy-svn] pypy jit-virtual_state: never retrace a loop more than 5 times

hakanardo commits-noreply at bitbucket.org
Tue Feb 8 19:42:38 CET 2011


Author: Hakan Ardo <hakan at debian.org>
Branch: jit-virtual_state
Changeset: r41714:91586ef4b9c5
Date: 2011-02-08 19:42 +0100
http://bitbucket.org/pypy/pypy/changeset/91586ef4b9c5/

Log:	never retrace a loop more than 5 times

diff --git a/pypy/jit/metainterp/optimizeopt/unroll.py b/pypy/jit/metainterp/optimizeopt/unroll.py
--- a/pypy/jit/metainterp/optimizeopt/unroll.py
+++ b/pypy/jit/metainterp/optimizeopt/unroll.py
@@ -671,7 +671,10 @@
                                         "jumping to preamble instead")
                             self.emit_operation(op)
                         return
-                if not self.retraced:
+                retraced_count = len(short)
+                if descr.failed_states:
+                    retraced_count += len(descr.failed_states)
+                if not self.retraced and retraced_count<5:
                     if not descr.failed_states:
                         raise RetraceLoop
                     for failed in descr.failed_states:


More information about the Pypy-commit mailing list