[pypy-commit] pypy optresult-unroll: be a bit more careful

fijal noreply at buildbot.pypy.org
Mon Aug 24 13:30:47 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult-unroll
Changeset: r79197:bb871fddbdb0
Date: 2015-08-24 13:30 +0200
http://bitbucket.org/pypy/pypy/changeset/bb871fddbdb0/

Log:	be a bit more careful

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
@@ -218,7 +218,7 @@
                 self.optimizer, append_virtuals=True)
             args = target_virtual_state.make_inputargs(args,
                 self.optimizer)
-            extra = self.inline_short_preamble(pass_to_short,
+            extra = self.inline_short_preamble(pass_to_short, args,
                 short_preamble[0].getarglist(), short_preamble,
                 short_preamble[-1].getarglist(), self.optimizer.patchguardop)
             self.send_extra_operation(jump_op.copy_and_change(rop.JUMP,
@@ -227,7 +227,8 @@
             return None # explicit because the return can be non-None
         return virtual_state
 
-    def inline_short_preamble(self, jump_args, short_inputargs, short_ops,
+    def inline_short_preamble(self, jump_args, args_no_virtuals,
+                              short_inputargs, short_ops,
                               short_jump_op, patchguardop):
         # warning!!!! short_jump_op might have arguments appended IN PLACE
         try:
@@ -246,7 +247,8 @@
                     op.rd_frame_info_list = patchguardop.rd_frame_info_list
                 self.optimizer.send_extra_operation(op)
                 i += 1
-            for arg in jump_args:
+            # force all of them except the virtuals
+            for arg in args_no_virtuals + short_jump_op:
                 self.optimizer.force_box(self.get_box_replacement(arg))
             return [self.get_box_replacement(box) for box in short_jump_op]
         finally:


More information about the pypy-commit mailing list