[pypy-commit] pypy optresult: kill infos on operations. fix failargs while in rewrite
fijal
noreply at buildbot.pypy.org
Fri May 29 13:41:07 CEST 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult
Changeset: r77681:07cdcc8c47f9
Date: 2015-05-28 16:58 +0200
http://bitbucket.org/pypy/pypy/changeset/07cdcc8c47f9/
Log: kill infos on operations. fix failargs while in rewrite
diff --git a/rpython/jit/backend/llsupport/rewrite.py b/rpython/jit/backend/llsupport/rewrite.py
--- a/rpython/jit/backend/llsupport/rewrite.py
+++ b/rpython/jit/backend/llsupport/rewrite.py
@@ -95,6 +95,11 @@
op = op.copy_and_change(op.getopnum())
replaced = True
op.setarg(i, arg)
+ if op.is_guard():
+ if not replaced:
+ op = op.copy_and_change(op.getopnum())
+ op.setfailargs([self.get_box_replacement(a)
+ for a in op.getfailargs()])
self._newops.append(op)
def replace_op_with(self, op, newop):
diff --git a/rpython/jit/metainterp/compile.py b/rpython/jit/metainterp/compile.py
--- a/rpython/jit/metainterp/compile.py
+++ b/rpython/jit/metainterp/compile.py
@@ -333,7 +333,13 @@
original_loop_token, log=log,
logger=metainterp_sd.logger_ops)
+def forget_optimization_info(lst):
+ for item in lst:
+ item.set_forwarded(None)
+
def send_loop_to_backend(greenkey, jitdriver_sd, metainterp_sd, loop, type):
+ forget_optimization_info(loop.operations)
+ forget_optimization_info(loop.inputargs)
vinfo = jitdriver_sd.virtualizable_info
if vinfo is not None:
patch_new_loop_to_load_virtualizable_fields(loop, jitdriver_sd)
@@ -388,6 +394,8 @@
def send_bridge_to_backend(jitdriver_sd, metainterp_sd, faildescr, inputargs,
operations, original_loop_token):
+ forget_optimization_info(operations)
+ forget_optimization_info(inputargs)
if not we_are_translated():
show_procedures(metainterp_sd)
seen = dict.fromkeys(inputargs)
More information about the pypy-commit
mailing list