Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r78940:a858bb9a544c
Date: 2015-08-12 16:41 +0200
http://bitbucket.org/pypy/pypy/changeset/a858bb9a544c/
Log: fix (again) issue 2015
diff --git a/rpython/jit/metainterp/optimizeopt/pure.py
b/rpython/jit/metainterp/optimizeopt/pure.py
--- a/rpython/jit/metainterp/optimizeopt/pure.py
+++ b/rpython/jit/metainterp/optimizeopt/pure.py
@@ -157,17 +157,13 @@
opnum = OpHelpers.call_for_descr(op.getdescr())
newop = self.optimizer.replace_op_with(op, opnum)
self.emit_operation(newop)
- # don't move call_pure_with_exception in the short preamble...
- # issue #2015
+ # don't move call_pure_with_exception in the short preamble...
+ # issue #2015
- # XXX default has this code:
- # this does not work with how pure calls are done on this branch
- # fix together with unroll
- #effectinfo = op.getdescr().get_extra_info()
- #if not effectinfo.check_can_raise(ignore_memoryerror=True):
- # if 1:
- self.call_pure_positions.append(
- len(self.optimizer._newoperations) - 1)
+ effectinfo = op.getdescr().get_extra_info()
+ if not effectinfo.check_can_raise(ignore_memoryerror=True):
+ self.call_pure_positions.append(
+ len(self.optimizer._newoperations) - 1)
optimize_CALL_PURE_R = optimize_CALL_PURE_I
optimize_CALL_PURE_F = optimize_CALL_PURE_I
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
@@ -3631,8 +3631,8 @@
def test_residual_call_invalidates_some_read_caches_3(self):
ops = """
[p1, i1, p2, i2]
+ setfield_gc(p2, i2, descr=adescr)
setfield_gc(p1, i1, descr=valuedescr)
- setfield_gc(p2, i2, descr=adescr)
i3 = call_i(i1, descr=plaincalldescr)
setfield_gc(p2, i3, descr=adescr)
setfield_gc(p1, i3, descr=valuedescr)
@@ -3747,7 +3747,6 @@
i3 = call_i(p1, descr=elidable3calldescr)
guard_no_exception() []
setfield_gc(p1, i3, descr=valuedescr)
- i167 = same_as_i(i3)
jump(p1, i4, i3)
'''
self.optimize_loop(ops, expected, preamble)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit