[pypy-commit] pypy default: Remove the cleverness about not building recursive RawSlicePtrInfos.

arigo noreply at buildbot.pypy.org
Wed Sep 23 20:53:24 CEST 2015


Author: Armin Rigo <arigo at 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):


More information about the pypy-commit mailing list