[pypy-commit] pypy default: Failing test where i73 is assigned twice in the optimized trace.

hakanardo noreply at buildbot.pypy.org
Tue Feb 28 08:56:20 CET 2012


Author: Hakan Ardo <hakan at debian.org>
Branch: 
Changeset: r52957:9a45d7852b5b
Date: 2012-02-28 08:15 +0100
http://bitbucket.org/pypy/pypy/changeset/9a45d7852b5b/

Log:	Failing test where i73 is assigned twice in the optimized trace.

diff --git a/pypy/jit/metainterp/optimizeopt/test/test_multilabel.py b/pypy/jit/metainterp/optimizeopt/test/test_multilabel.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_multilabel.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_multilabel.py
@@ -398,6 +398,50 @@
         with raises(InvalidLoop):
             self.optimize_loop(ops, ops)
 
+    def test_maybe_issue1045_related(self):
+        ops = """
+        [p8]
+        p54 = getfield_gc(p8, descr=valuedescr)
+        mark_opaque_ptr(p54)
+        i55 = getfield_gc(p54, descr=nextdescr)
+        p57 = new_with_vtable(ConstClass(node_vtable))
+        setfield_gc(p57, i55, descr=otherdescr)
+        p69 = new_with_vtable(ConstClass(node_vtable))
+        setfield_gc(p69, i55, descr=otherdescr)
+        i71 = int_eq(i55, -9223372036854775808)
+        guard_false(i71) []
+        i73 = int_mod(i55, 2)
+        i75 = int_rshift(i73, 63)
+        i76 = int_and(2, i75)
+        i77 = int_add(i73, i76)
+        p79 = new_with_vtable(ConstClass(node_vtable))
+        setfield_gc(p79, i77, descr=otherdescr)
+        i81 = int_eq(i77, 1)
+        guard_false(i81) []
+        i0 = int_ge(i55, 1)
+        guard_true(i0) []
+        label(p57)
+        jump(p57)
+        """
+        expected = """
+        [p8]
+        p54 = getfield_gc(p8, descr=valuedescr)
+        i55 = getfield_gc(p54, descr=nextdescr)
+        i71 = int_eq(i55, -9223372036854775808)
+        guard_false(i71) []
+        i73 = int_mod(i55, 2)
+        i75 = int_rshift(i73, 63)
+        i76 = int_and(2, i75)
+        i77 = int_add(i73, i76)
+        i81 = int_eq(i77, 1)
+        guard_false(i81) []
+        i0 = int_ge(i55, 1)
+        guard_true(i0) []
+        label(i55)
+        jump(i55)
+        """
+        self.optimize_loop(ops, expected)
+        
 class OptRenameStrlen(Optimization):
     def propagate_forward(self, op):
         dispatch_opt(self, op)
@@ -457,7 +501,6 @@
         jump(p1, i11)
         """
         self.optimize_loop(ops, expected)
-
         
 
 class TestLLtype(OptimizeoptTestMultiLabel, LLtypeMixin):


More information about the pypy-commit mailing list