Author: Maciej Fijalkowski <fij...@gmail.com> Branch: range-immutable Changeset: r45832:a17d21b7ede9 Date: 2011-07-21 18:15 +0200 http://bitbucket.org/pypy/pypy/changeset/a17d21b7ede9/
Log: merge default again x2 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 @@ -2586,7 +2586,23 @@ return n res = self.meta_interp(f, [10, 1]) self.check_loops(getfield_gc=2) + assert res == f(10, 1) + def test_jit_merge_point_with_raw_pointer(self): + driver = JitDriver(greens = [], reds = ['n', 'x']) + + TP = lltype.Array(lltype.Signed, hints={'nolength': True}) + + def f(n): + x = lltype.malloc(TP, 10, flavor='raw') + x[0] = 1 + while n > 0: + driver.jit_merge_point(n=n, x=x) + n -= x[0] + lltype.free(x, flavor='raw') + return n + + self.meta_interp(f, [10], repeat=3) class TestLLtype(BaseLLtypeTests, LLJitMixin): pass diff --git a/pypy/jit/metainterp/warmstate.py b/pypy/jit/metainterp/warmstate.py --- a/pypy/jit/metainterp/warmstate.py +++ b/pypy/jit/metainterp/warmstate.py @@ -138,6 +138,9 @@ refvalue = cpu.ts.cast_to_ref(value) cpu.set_future_value_ref(j, refvalue) elif typecode == 'int': + if isinstance(lltype.typeOf(value), lltype.Ptr): + intvalue = llmemory.AddressAsInt(llmemory.cast_ptr_to_adr(value)) + else: intvalue = lltype.cast_primitive(lltype.Signed, value) cpu.set_future_value_int(j, intvalue) elif typecode == 'float': diff --git a/pypy/module/micronumpy/interp_numarray.py b/pypy/module/micronumpy/interp_numarray.py --- a/pypy/module/micronumpy/interp_numarray.py +++ b/pypy/module/micronumpy/interp_numarray.py @@ -272,8 +272,8 @@ i = start j = 0 while i < stop: - slice_driver1.jit_merge_point(signature=arr.signature, - step=step, stop=stop, i=i, j=j, arr=arr, storage=storage) + #slice_driver1.jit_merge_point(signature=arr.signature, + # step=step, stop=stop, i=i, j=j, arr=arr, storage=storage) storage[i] = arr.eval(j) j += 1 i += step @@ -282,8 +282,8 @@ i = start j = 0 while i > stop: - slice_driver2.jit_merge_point(signature=arr.signature, - step=step, stop=stop, i=i, j=j, arr=arr, storage=storage) + #slice_driver2.jit_merge_point(signature=arr.signature, + # step=step, stop=stop, i=i, j=j, arr=arr, storage=storage) storage[i] = arr.eval(j) j += 1 i += step _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit