Author: Maciej Fijalkowski <fij...@gmail.com>
Branch: optresult-unroll
Changeset: r79196:74f0b0106b86
Date: 2015-08-24 13:24 +0200
http://bitbucket.org/pypy/pypy/changeset/74f0b0106b86/

Log:    maaaybe fix this test

diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py 
b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -7231,7 +7231,8 @@
         p188 = getarrayitem_gc_r(p187, 42, descr=gcarraydescr)
         guard_value(p188, ConstPtr(myptr)) []
         p25 = getfield_gc_r(ConstPtr(myptr), descr=otherdescr)
-        jump(p25, p187, i184)
+        p5 = same_as_r(p25)
+        jump(p25, p187, i184, p5)
         """
         short = """
         [p1, p187, i184]
@@ -7242,7 +7243,7 @@
         """
         expected = """
         [p25, p187, i184, p189]
-        jump(p25, p187, i184, p189)
+        jump(p189, p187, i184, p189) # <- XXX is this correct for bridges?
         """
         self.optimize_loop(ops, expected, preamble, expected_short=short)
 
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
@@ -115,7 +115,7 @@
         extra = self.short_preamble_producer.used_boxes
         label_op.initarglist(label_args + extra)
         # force the boxes for virtual state to match
-        x = state.virtual_state.make_inputargs(
+        state.virtual_state.make_inputargs(
             [self.get_box_replacement(x) for x in end_jump.getarglist()],
             self.optimizer, force_boxes=True)
         new_virtual_state = self.jump_to_existing_trace(end_jump)
@@ -219,7 +219,7 @@
             args = target_virtual_state.make_inputargs(args,
                 self.optimizer)
             extra = self.inline_short_preamble(pass_to_short,
-                short_preamble[0].getarglist(), short_preamble[1:-1],
+                short_preamble[0].getarglist(), short_preamble,
                 short_preamble[-1].getarglist(), self.optimizer.patchguardop)
             self.send_extra_operation(jump_op.copy_and_change(rop.JUMP,
                                       args=args + extra,
@@ -236,16 +236,19 @@
             for i in range(len(jump_args)):
                 short_inputargs[i].set_forwarded(None)
                 self.make_equal_to(short_inputargs[i], jump_args[i])
-            for op in short_ops:
+            i = 1
+            while i < len(short_ops) - 1:
+                op = short_ops[i]
                 if op.is_guard():
                     op = self.replace_op_with(op, op.getopnum(),
                                     descr=compile.ResumeAtPositionDescr())
                     op.rd_snapshot = patchguardop.rd_snapshot
                     op.rd_frame_info_list = patchguardop.rd_frame_info_list
                 self.optimizer.send_extra_operation(op)
-            res = [self.optimizer.get_box_replacement(op) for op in
-                    short_jump_op]
-            return res
+                i += 1
+            for arg in jump_args:
+                self.optimizer.force_box(self.get_box_replacement(arg))
+            return [self.get_box_replacement(box) for box in short_jump_op]
         finally:
             for op in short_inputargs:
                 op.set_forwarded(None)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to