Author: Brian Kearns <bdkea...@gmail.com> Branch: Changeset: r70718:5276d89f1cca Date: 2014-04-17 15:08 -0400 http://bitbucket.org/pypy/pypy/changeset/5276d89f1cca/
Log: avoid new array in iter reset diff --git a/pypy/module/micronumpy/iterators.py b/pypy/module/micronumpy/iterators.py --- a/pypy/module/micronumpy/iterators.py +++ b/pypy/module/micronumpy/iterators.py @@ -90,11 +90,16 @@ self.shape_m1 = [s - 1 for s in shape] self.strides = strides self.backstrides = backstrides - self.reset() + self.index = 0 + self.indices = [0] * len(shape) + self.offset = array.start + + @jit.unroll_safe def reset(self): self.index = 0 - self.indices = [0] * len(self.shape_m1) + for i in xrange(self.ndim_m1, -1, -1): + self.indices[i] = 0 self.offset = self.array.start @jit.unroll_safe diff --git a/pypy/module/micronumpy/test/test_zjit.py b/pypy/module/micronumpy/test/test_zjit.py --- a/pypy/module/micronumpy/test/test_zjit.py +++ b/pypy/module/micronumpy/test/test_zjit.py @@ -564,7 +564,6 @@ 'raw_load': 2, }) self.check_resops({ - 'arraylen_gc': 1, 'float_add': 2, 'float_mul': 2, 'getarrayitem_gc': 7, @@ -584,11 +583,10 @@ 'int_lt': 11, 'int_sub': 4, 'jump': 3, - 'new_array': 1, 'raw_load': 6, 'raw_store': 1, - 'setarrayitem_gc': 8, - 'setfield_gc': 15, + 'setarrayitem_gc': 10, + 'setfield_gc': 14, }) def define_argsort(): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit