[pypy-commit] pypy share-guard-info: share up to 5 guards

fijal noreply at buildbot.pypy.org
Tue Sep 15 09:16:05 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: share-guard-info
Changeset: r79642:c06257c68c32
Date: 2015-09-15 09:16 +0200
http://bitbucket.org/pypy/pypy/changeset/c06257c68c32/

Log:	share up to 5 guards

diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py b/rpython/jit/metainterp/optimizeopt/optimizer.py
--- a/rpython/jit/metainterp/optimizeopt/optimizer.py
+++ b/rpython/jit/metainterp/optimizeopt/optimizer.py
@@ -573,13 +573,15 @@
                 return
             else:
                 guard_op = self.replace_op_with(op, op.getopnum())
-                if self._last_guard_op:
+                if self._last_guard_op and self._last_guard_count < 5:
                     op = self._copy_resume_data_from(guard_op,
                                                      self._last_guard_op)
+                    self._last_guard_count += 1
                 else:
                     op = self.store_final_boxes_in_guard(guard_op,
                                                          pendingfields)
                     self._last_guard_op = op
+                    self._last_guard_count = 0
                     # for unrolling
                     for farg in op.getfailargs():
                         if farg:


More information about the pypy-commit mailing list