[pypy-svn] r71463 - pypy/branch/debug-vref3/pypy/jit/metainterp/test

arigo at codespeak.net arigo at codespeak.net
Wed Feb 24 19:02:03 CET 2010


Author: arigo
Date: Wed Feb 24 19:02:01 2010
New Revision: 71463

Modified:
   pypy/branch/debug-vref3/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
Write a failing test.


Modified: pypy/branch/debug-vref3/pypy/jit/metainterp/test/test_optimizeopt.py
==============================================================================
--- pypy/branch/debug-vref3/pypy/jit/metainterp/test/test_optimizeopt.py	(original)
+++ pypy/branch/debug-vref3/pypy/jit/metainterp/test/test_optimizeopt.py	Wed Feb 24 19:02:01 2010
@@ -2664,6 +2664,34 @@
             where p1b is a node_vtable, valuedescr=i1
             ''')
 
+    def test_vref_virtual_after_finish(self):
+        self.make_fail_descr()
+        ops = """
+        [i1]
+        p1 = new_with_vtable(ConstClass(node_vtable))
+        p2 = virtual_ref(p1, 7)
+        escape(p2)
+        virtual_ref_finish(p2, p1)
+        call_may_force(i1, descr=mayforcevirtdescr)
+        guard_not_forced() []
+        jump(i1)
+        """
+        expected = """
+        [i1]
+        i3 = force_token()
+        p2 = new_with_vtable(ConstClass(jit_virtual_ref_vtable))
+        setfield_gc(p2, i3, descr=virtualtokendescr)
+        setfield_gc(p2, 7, descr=virtualrefindexdescr)
+        escape(p2)
+        p1 = new_with_vtable(ConstClass(node_vtable))
+        setfield_gc(p2, p1, descr=virtualforceddescr)
+        setfield_gc(p2, -2, descr=virtualtokendescr)
+        call_may_force(i1, descr=mayforcevirtdescr)
+        guard_not_forced() []
+        jump(i1)
+        """
+        self.optimize_loop(ops, 'Not', expected)
+
     def test_vref_nonvirtual_and_lazy_setfield(self):
         self.make_fail_descr()
         ops = """



More information about the Pypy-commit mailing list