[pypy-commit] pypy default: Test fix
arigo
noreply at buildbot.pypy.org
Sun Sep 27 17:29:36 CEST 2015
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r79865:644a9163d222
Date: 2015-09-27 17:29 +0200
http://bitbucket.org/pypy/pypy/changeset/644a9163d222/
Log: Test fix
diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py b/rpython/jit/metainterp/optimizeopt/optimizer.py
--- a/rpython/jit/metainterp/optimizeopt/optimizer.py
+++ b/rpython/jit/metainterp/optimizeopt/optimizer.py
@@ -3,7 +3,7 @@
from rpython.jit.metainterp.logger import LogOperations
from rpython.jit.metainterp.history import Const, ConstInt, REF, ConstPtr
from rpython.jit.metainterp.optimizeopt.intutils import IntBound,\
- ConstIntBound, MININT, MAXINT
+ ConstIntBound, MININT, MAXINT, IntUnbounded
from rpython.jit.metainterp.optimizeopt.util import make_dispatcher_method
from rpython.jit.metainterp.resoperation import rop, AbstractResOp, GuardResOp,\
OpHelpers, ResOperation
@@ -57,9 +57,11 @@
if isinstance(op, ConstInt):
return ConstIntBound(op.getint())
fw = op.get_forwarded()
- if isinstance(fw, IntBound):
- return fw
- assert fw is None
+ if fw is not None:
+ if isinstance(fw, IntBound):
+ return fw
+ # rare case: fw might be a RawBufferPtrInfo
+ return IntUnbounded()
assert op.type == 'i'
intbound = IntBound(MININT, MAXINT)
op.set_forwarded(intbound)
@@ -72,7 +74,8 @@
return
cur = op.get_forwarded()
if cur is not None:
- cur.intersect(bound)
+ if isinstance(cur, IntBound):
+ cur.intersect(bound)
else:
op.set_forwarded(bound)
@@ -404,7 +407,8 @@
box = self.get_box_replacement(box)
if not we_are_translated(): # safety-check
if (box.get_forwarded() is not None and
- isinstance(constbox, ConstInt)):
+ isinstance(constbox, ConstInt) and
+ not isinstance(box.get_forwarded(), info.AbstractRawPtrInfo)):
assert box.get_forwarded().contains(constbox.getint())
if box.is_constant():
return
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
@@ -8902,12 +8902,12 @@
"""
self.optimize_loop(ops, expected)
- def test_raw_buffer_ptr_info_intbounds(self):
- ops = """
- [i1]
+ def test_raw_buffer_ptr_info_intbounds_bug(self):
+ ops = """
+ []
i2 = call_i('malloc', 10, descr=raw_malloc_descr)
guard_value(i2, 12345) []
- jump(i2)
+ jump()
"""
self.optimize_loop(ops, ops)
More information about the pypy-commit
mailing list