[pypy-svn] r78539 - pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test

hakanardo at codespeak.net hakanardo at codespeak.net
Sat Oct 30 17:58:35 CEST 2010


Author: hakanardo
Date: Sat Oct 30 17:58:34 2010
New Revision: 78539

Modified:
   pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
fixed tests

Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py	(original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py	Sat Oct 30 17:58:34 2010
@@ -1635,7 +1635,22 @@
         setfield_gc(p1, i2, descr=valuedescr)
         jump(p1, i1, i2, i4)
         """
-        self.optimize_loop(ops, 'Not, Not, Not, Not', ops)
+        preamble = """
+        [p1, i1, i2, i3]
+        setfield_gc(p1, i1, descr=valuedescr)
+        guard_true(i3) []
+        i4 = int_neg(i2)
+        setfield_gc(p1, i2, descr=valuedescr)
+        jump(p1, i1, i2, i4)
+        """
+        expected = """
+        [p1, i1, i2, i4]
+        setfield_gc(p1, i1, descr=valuedescr)
+        guard_true(i4) []
+        setfield_gc(p1, i2, descr=valuedescr)
+        jump(p1, i1, i2, 1)
+        """
+        self.optimize_loop(ops, 'Not, Not, Not, Not', expected, preamble)
 
     def test_duplicate_setfield_residual_guard_2(self):
         # the difference with the previous test is that the field value is
@@ -1649,14 +1664,20 @@
         setfield_gc(p1, NULL, descr=nextdescr)
         jump(p1, i2, i4)
         """
-        expected = """
+        preamble = """
         [p1, i2, i3]
         guard_true(i3) [p1]
         i4 = int_neg(i2)
         setfield_gc(p1, NULL, descr=nextdescr)
         jump(p1, i2, i4)
         """
-        self.optimize_loop(ops, 'Not, Not, Not', expected)
+        expected = """
+        [p1, i2, i4]
+        guard_true(i4) [p1]
+        setfield_gc(p1, NULL, descr=nextdescr)
+        jump(p1, i2, 1)
+        """
+        self.optimize_loop(ops, 'Not, Not, Not', expected, preamble)
 
     def test_duplicate_setfield_residual_guard_3(self):
         ops = """
@@ -1669,13 +1690,19 @@
         setfield_gc(p1, NULL, descr=nextdescr)
         jump(p1, i2, i4)
         """
-        expected = """
+        preamble = """
         [p1, i2, i3]
         guard_true(i3) [i2, p1]
         i4 = int_neg(i2)
         setfield_gc(p1, NULL, descr=nextdescr)
         jump(p1, i2, i4)
         """
+        expected = """
+        [p1, i2, i4]
+        guard_true(i4) [i2, p1]
+        setfield_gc(p1, NULL, descr=nextdescr)
+        jump(p1, i2, 1)
+        """
         self.optimize_loop(ops, 'Not, Not, Not', expected)
 
     def test_duplicate_setfield_residual_guard_4(self):
@@ -1690,7 +1717,16 @@
         setfield_gc(p1, i2, descr=valuedescr)
         jump(p1, i1, i2, i4)
         """
-        self.optimize_loop(ops, 'Not, Not, Not, Not', ops)
+        preamble = ops
+        expected = """
+        [p1, i1, i2, i4]
+        setfield_gc(p1, i1, descr=valuedescr)
+        i5 = int_eq(i4, 5)
+        guard_true(i5) []
+        setfield_gc(p1, i2, descr=valuedescr)
+        jump(p1, i1, i2, 5)
+        """
+        self.optimize_loop(ops, 'Not, Not, Not, Not', expected, preamble)
 
     def test_duplicate_setfield_aliasing(self):
         # a case where aliasing issues (and not enough cleverness) mean



More information about the Pypy-commit mailing list