Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r80664:e392b3d88ecf
Date: 2015-11-13 14:43 +0100
http://bitbucket.org/pypy/pypy/changeset/e392b3d88ecf/

Log:    In this rewriting step, make a copy of the guard before mangling its
        failargs. Avoids confusing log outputs.

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
@@ -120,7 +120,9 @@
         # this case means between CALLs or unknown-size mallocs.
         #
         operations = self.remove_bridge_exception(operations)
+        self._source_operations = operations
         for i in range(len(operations)):
+            self._current_position = i
             op = operations[i]
             assert op.get_forwarded() is None
             if op.getopnum() == rop.DEBUG_MERGE_POINT:
@@ -211,7 +213,11 @@
         self.emit_op(op1)
         lst = op.getfailargs()[:]
         lst[i] = op1
-        op.setfailargs(lst)
+        operations = self._source_operations
+        assert operations[self._current_position + 1] is op
+        newop = op.copy_and_change(opnum)
+        newop.setfailargs(lst)
+        operations[self._current_position + 1] = newop
 
     # ----------
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to