Author: Armin Rigo <ar...@tunes.org> Branch: store-sink-array Changeset: r45035:d5db3945650b Date: 2011-06-21 16:48 +0200 http://bitbucket.org/pypy/pypy/changeset/d5db3945650b/
Log: Bah. Add a test and fix a stupid bug. diff --git a/pypy/jit/metainterp/optimizeopt/heap.py b/pypy/jit/metainterp/optimizeopt/heap.py --- a/pypy/jit/metainterp/optimizeopt/heap.py +++ b/pypy/jit/metainterp/optimizeopt/heap.py @@ -319,7 +319,7 @@ else: assert 0 pendingfields.append((op.getdescr(), value.box, - fieldvalue.get_key_box(), -1)) + fieldvalue.get_key_box(), itemindex)) else: cf.force_lazy_setfield(self) self.fixup_guard_situation() diff --git a/pypy/jit/metainterp/test/test_ajit.py b/pypy/jit/metainterp/test/test_ajit.py --- a/pypy/jit/metainterp/test/test_ajit.py +++ b/pypy/jit/metainterp/test/test_ajit.py @@ -2298,6 +2298,21 @@ res = self.meta_interp(f, [1]) assert res == f(1) + def test_remove_array_operations(self): + myjitdriver = JitDriver(greens = [], reds = ['a']) + class W_Int: + def __init__(self, intvalue): + self.intvalue = intvalue + def f(x): + a = [W_Int(x)] + while a[0].intvalue > 0: + myjitdriver.jit_merge_point(a=a) + a[0] = W_Int(a[0].intvalue - 3) + return a[0].intvalue + res = self.meta_interp(f, [100]) + assert res == -2 + #self.check_loops(getarrayitem_gc=0, setarrayitem_gc=0) -- xxx? + class TestOOtype(BasicTests, OOJitMixin): def test_oohash(self): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit