[pypy-commit] pypy optresult-unroll: fix test_resume

fijal noreply at buildbot.pypy.org
Wed Aug 19 15:10:22 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult-unroll
Changeset: r79058:89142fbe7604
Date: 2015-08-19 15:10 +0200
http://bitbucket.org/pypy/pypy/changeset/89142fbe7604/

Log:	fix test_resume

diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -9,7 +9,7 @@
 from rpython.jit.metainterp.history import ConstInt, get_const_ptr_for_string
 from rpython.jit.metainterp import executor, compile, resume
 from rpython.jit.metainterp.resoperation import rop, ResOperation, InputArgInt,\
-     OpHelpers
+     OpHelpers, InputArgRef
 from rpython.rlib.rarithmetic import LONG_BIT
 from rpython.jit.tool.oparser import parse
 
@@ -2483,11 +2483,13 @@
                                  fieldvalue.strip(), strict=False)
                 index += 1
 
-    def check_expanded_fail_descr(self, expectedtext, guard_opnum):
+    def check_expanded_fail_descr(self, expectedtext, guard_opnum, values=None):
         from rpython.jit.metainterp.test.test_resume import ResumeDataFakeReader
         from rpython.jit.metainterp.test.test_resume import MyMetaInterp
         guard_op, = [op for op in self.loop.operations if op.is_guard()]
         fail_args = guard_op.getfailargs()
+        if values is not None:
+            fail_args = values
         fdescr = guard_op.getdescr()
         assert fdescr.guard_opnum == guard_opnum
         reader = ResumeDataFakeReader(fdescr, fail_args,
@@ -2727,11 +2729,12 @@
         jump(p1, i2, i4)
         """
         self.optimize_loop(ops, expected)
-        self.loop.inputargs[0].setref_base(self.nodeaddr)
-        self.check_expanded_fail_descr('''
+        self.check_expanded_fail_descr(
+            '''
             p1.nextdescr = p2
             where p2 is a node_vtable, valuedescr=i2
-            ''', rop.GUARD_TRUE)
+            ''', rop.GUARD_TRUE, values=[InputArgInt(0),
+                                         InputArgRef(self.nodeaddr)])
 
     def test_expand_fail_lazy_setfield_2(self):
         ops = """
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_util.py b/rpython/jit/metainterp/optimizeopt/test/test_util.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_util.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_util.py
@@ -111,6 +111,7 @@
     
     node = lltype.malloc(NODE)
     node.value = 5
+    node.next = node
     node.parent.typeptr = node_vtable
     nodeaddr = lltype.cast_opaque_ptr(llmemory.GCREF, node)
     #nodebox = InputArgRef(lltype.cast_opaque_ptr(llmemory.GCREF, node))
diff --git a/rpython/jit/metainterp/test/test_resume.py b/rpython/jit/metainterp/test/test_resume.py
--- a/rpython/jit/metainterp/test/test_resume.py
+++ b/rpython/jit/metainterp/test/test_resume.py
@@ -1207,16 +1207,16 @@
     modifier.vfieldboxes = {}
 
     vdescr = LLtypeMixin.nodesize2
-    v4 = info.InstancePtrInfo(ConstAddr(LLtypeMixin.node_vtable_adr2,
-                                        LLtypeMixin.cpu), vdescr)
+    ca = ConstAddr(LLtypeMixin.node_vtable_adr2, LLtypeMixin.cpu)
+    v4 = info.InstancePtrInfo(ca, vdescr)
     b4s.set_forwarded(v4)
-    v4.setfield(LLtypeMixin.nextdescr, b2s)
-    v4.setfield(LLtypeMixin.valuedescr, b3s)
-    v4.setfield(LLtypeMixin.otherdescr, b5s)
-    v2 = info.InstancePtrInfo(ConstAddr(LLtypeMixin.node_vtable_adr,
-                                        LLtypeMixin.cpu), LLtypeMixin.nodesize)
-    v2.setfield(LLtypeMixin.nextdescr, b4s)
-    v2.setfield(LLtypeMixin.valuedescr, c1s)
+    v4.setfield(LLtypeMixin.nextdescr, ca, b2s)
+    v4.setfield(LLtypeMixin.valuedescr, ca, b3s)
+    v4.setfield(LLtypeMixin.otherdescr, ca, b5s)
+    ca = ConstAddr(LLtypeMixin.node_vtable_adr, LLtypeMixin.cpu)
+    v2 = info.InstancePtrInfo(ca, LLtypeMixin.nodesize)
+    v2.setfield(LLtypeMixin.nextdescr, b4s, ca)
+    v2.setfield(LLtypeMixin.valuedescr, c1s, ca)
     b2s.set_forwarded(v2)
 
     modifier.register_virtual_fields(b2s, [c1s, None, None, b4s])
@@ -1335,9 +1335,10 @@
     modifier.vfieldboxes = {}
     v2 = info.StructPtrInfo(LLtypeMixin.ssize)
     b2s.set_forwarded(v2)
-    v2.setfield(LLtypeMixin.adescr, c1s)
-    v2.setfield(LLtypeMixin.bdescr, b4s)
-    modifier.register_virtual_fields(b2s, [c1s, b4s])
+    v2.setfield(LLtypeMixin.adescr, b2s, c1s)
+    v2.setfield(LLtypeMixin.abisdescr, b2s, c1s)
+    v2.setfield(LLtypeMixin.bdescr, b2s, b4s)
+    modifier.register_virtual_fields(b2s, [c1s, c1s, b4s])
     liveboxes = []
     modifier._number_virtuals(liveboxes, FakeOptimizer(), 0)
     dump_storage(storage, liveboxes)
@@ -1357,6 +1358,7 @@
     expected = [
         (rop.NEW, [], b2t.getref_base(), LLtypeMixin.ssize),
         (rop.SETFIELD_GC, [b2t, c1s],  None, LLtypeMixin.adescr),
+        (rop.SETFIELD_GC, [b2t, c1s],  None, LLtypeMixin.abisdescr),
         (rop.SETFIELD_GC, [b2t, b4t], None, LLtypeMixin.bdescr),
         ]
     with CompareableConsts():


More information about the pypy-commit mailing list