Re: [pypy-dev] [pypy-commit] pypy default: fix jit translation, don't lookinside this function until ptradd works with things besides ccharp
On Thu, Oct 25, 2012 at 4:38 AM, alex_gaynor
Author: Alex Gaynor
Branch: Changeset: r58413:88158af0627f Date: 2012-10-24 19:38 -0700 http://bitbucket.org/pypy/pypy/changeset/88158af0627f/ Log: fix jit translation, don't lookinside this function until ptradd works with things besides ccharp
We can use raw_load and raw_store (from pypy.rlib.rawstorage) that can be understood by the JIT. making ptradd understood is also not a big deal.
diff --git a/pypy/module/array/interp_array.py b/pypy/module/array/interp_array.py --- a/pypy/module/array/interp_array.py +++ b/pypy/module/array/interp_array.py @@ -9,6 +9,7 @@ from pypy.objspace.std.multimethod import FailedToImplement from pypy.objspace.std.stdtypedef import SMM, StdTypeDef from pypy.objspace.std.register_all import register_all +from pypy.rlib import jit from pypy.rlib.rarithmetic import ovfcheck, widen from pypy.rlib.unroll import unrolling_iterable from pypy.rlib.objectmodel import specialize, keepalive_until_here @@ -466,6 +467,7 @@ self.setlen(0) self.fromsequence(w_lst)
+ @jit.dont_look_inside def delslice__Array_ANY_ANY(space, self, w_i, w_j): i = space.int_w(w_i) if i < 0: @@ -495,13 +497,13 @@ rffi.c_memcpy( rffi.cast(rffi.VOIDP, rffi.ptradd(self.buffer, i)), rffi.cast(rffi.VOIDP, rffi.ptradd(oldbuffer, j)), - (self.len - j) * mytype.bytes) + (self.len - j) * mytype.bytes + ) self.len -= j - i self.allocated = self.len if oldbuffer: lltype.free(oldbuffer, flavor='raw')
- # Add and mul methods
def add__Array_Array(space, self, other): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit
participants (1)
-
Maciej Fijalkowski