Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r79804:2e8414e8d696 Date: 2015-09-23 20:53 +0200 http://bitbucket.org/pypy/pypy/changeset/2e8414e8d696/
Log: Remove the cleverness about not building recursive RawSlicePtrInfos. It doesn't work because of 'op.getarg(0)' we do in that class, but sometimes we'd need to follow it more than once. diff --git a/rpython/jit/metainterp/optimizeopt/virtualize.py b/rpython/jit/metainterp/optimizeopt/virtualize.py --- a/rpython/jit/metainterp/optimizeopt/virtualize.py +++ b/rpython/jit/metainterp/optimizeopt/virtualize.py @@ -256,13 +256,10 @@ offset = offsetbox.getint() # the following check is constant-folded to False if the # translation occurs without any VRawXxxValue instance around - if isinstance(opinfo, info.RawBufferPtrInfo): + if (isinstance(opinfo, info.RawBufferPtrInfo) or + isinstance(opinfo, info.RawSlicePtrInfo)): self.make_virtual_raw_slice(offset, opinfo, op) return - elif isinstance(opinfo, info.RawSlicePtrInfo): - offset = offset + opinfo.offset - self.make_virtual_raw_slice(offset, opinfo.parent, op) - return self.emit_operation(op) def optimize_ARRAYLEN_GC(self, op): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit