[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