Author: Armin Rigo <ar...@tunes.org>
Branch: 
Changeset: r89571:b4c9d4ee5864
Date: 2017-01-15 08:58 +0100
http://bitbucket.org/pypy/pypy/changeset/b4c9d4ee5864/

Log:    issue2465: the test was wrong anyway, but finally found the bogus
        place. (I think I am to blame, it comes from the fix 8cc8067ed404)

diff --git a/rpython/jit/metainterp/optimizeopt/unroll.py 
b/rpython/jit/metainterp/optimizeopt/unroll.py
--- a/rpython/jit/metainterp/optimizeopt/unroll.py
+++ b/rpython/jit/metainterp/optimizeopt/unroll.py
@@ -350,14 +350,6 @@
             self.send_extra_operation(jump_op.copy_and_change(rop.JUMP,
                                       args=args + extra,
                                       descr=target_token))
-
-            # XXX see test_issue2465 for a case where the following occurs
-            # XXX (it would be better to really understand the problem
-            # XXX and fix it, but I am failing so far)
-            if label_op is not None and len(args + extra) != 
label_op.numargs():
-                del self.optimizer._newoperations[-1]    # remove the JUMP
-                raise InvalidLoop
-
             return None # explicit because the return can be non-None
         return virtual_state
 
@@ -413,7 +405,8 @@
                 i += 1
                 self.optimizer.send_extra_operation(op)
             # force all of them except the virtuals
-            for arg in args_no_virtuals + short_jump_args:
+            for arg in (args_no_virtuals +
+                        self._map_args(mapping, short_jump_args)):
                 self.optimizer.force_box(self.get_box_replacement(arg))
             self.optimizer.flush()
             # done unless "short" has grown again
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to