[pypy-svn] r79845 - pypy/trunk/pypy/jit/metainterp/test

arigo at codespeak.net arigo at codespeak.net
Mon Dec 6 15:47:22 CET 2010


Author: arigo
Date: Mon Dec  6 15:47:20 2010
New Revision: 79845

Modified:
   pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
Reproduce the bug of issue591.


Modified: pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py	(original)
+++ pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py	Mon Dec  6 15:47:20 2010
@@ -1954,6 +1954,50 @@
         """
         self.optimize_loop(ops, 'Virtual(node_vtable2, nextdescr=Not, otherdescr=Not)', expected)
 
+    def test_bug_4(self):
+        ops = """
+        [p0, p1, p2, p3, p4, i5, i6, p7, p8, p9]
+
+        guard_value(i5, 0) []
+        guard_nonnull(p9) []
+
+        guard_value(p3, 0) []
+
+        guard_class(p9, ConstClass(node_vtable)) []
+        guard_class(p9, ConstClass(node_vtable)) []
+        i14 = getfield_gc_pure(p9, descr=valuedescr)
+        i16 = int_lt(i14, 10000)
+        guard_true(i16) []
+
+        guard_nonnull(p9) []
+
+        p17 = getfield_gc(p0, descr=nextdescr)
+        guard_nonnull(p17) []
+        guard_class(p17, 143782720) []
+        guard_class(p17, 143782720) []
+        guard_value(p17, ConstPtr(myptr)) []
+        setfield_gc(ConstPtr(myptr), p9, descr=nextdescr)
+
+        guard_nonnull(p9) []
+
+        guard_class(p9, ConstClass(node_vtable)) []
+        guard_class(p9, ConstClass(node_vtable)) []
+        i26 = getfield_gc_pure(p9, descr=valuedescr)
+        i28 = int_add_ovf(i26, 1)
+        guard_no_overflow() []
+        p30 = new_with_vtable(ConstClass(node_vtable))
+        setfield_gc(p30, i28, descr=valuedescr)
+
+        p37 = same_as(0)
+        i39 = same_as(0)
+        i41 = same_as(9)
+        p43 = same_as(0)
+        p45 = same_as(0)
+        jump(p0, p1, p2, p37, p4, i39, i41, p43, p45, p30)
+        """
+        self.optimize_loop(ops, 'Not, Not, Not, Constant(0), Not, Constant(0), Not, Not, Not, ' +
+                                'Virtual(node_vtable, valuedescr=Not)', Ellipsis)
+
     def test_invalid_loop_1(self):
         ops = """
         [p1]



More information about the Pypy-commit mailing list