[pypy-svn] r66500 - pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test

arigo at codespeak.net arigo at codespeak.net
Wed Jul 22 09:47:20 CEST 2009


Author: arigo
Date: Wed Jul 22 09:47:20 2009
New Revision: 66500

Modified:
   pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
A test for the "duplicate" part of the previous checkin.


Modified: pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimizeopt.py
==============================================================================
--- pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimizeopt.py	(original)
+++ pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimizeopt.py	Wed Jul 22 09:47:20 2009
@@ -609,6 +609,33 @@
         """
         self.optimize_loop(ops, 'Not, Not', expected, i1=1)
 
+    def test_expand_fail_duplicate(self):
+        ops = """
+        [i1, i2]
+        p1 = new_with_vtable(ConstClass(node_vtable), descr=nodesize)
+        p2 = new_with_vtable(ConstClass(node_vtable), descr=nodesize)
+        setfield_gc(p1, i2, descr=valuedescr)
+        setfield_gc(p1, p2, descr=nextdescr)
+        setfield_gc(p2, i2, descr=valuedescr)
+        guard_true(i1)
+            fail(%s)
+        jump(i1, i2)
+        """
+        expected = """
+        [i1, i2]
+        guard_true(i1)
+            fail(i2)
+        jump(1, i2)
+        """
+        self.optimize_loop(ops % 'p1',         'Not, Not', expected, i1=1)
+        self.optimize_loop(ops % 'p1, i2',     'Not, Not', expected, i1=1)
+        self.optimize_loop(ops % 'p1, i2, i2', 'Not, Not', expected, i1=1)
+        self.optimize_loop(ops % 'i2, p1, i2', 'Not, Not', expected, i1=1)
+        self.optimize_loop(ops % 'i2, i2, p1', 'Not, Not', expected, i1=1)
+        self.optimize_loop(ops % 'p1, p1',     'Not, Not', expected, i1=1)
+        self.optimize_loop(ops % 'p1, p2',     'Not, Not', expected, i1=1)
+        self.optimize_loop(ops % 'p2, p1',     'Not, Not', expected, i1=1)
+
 
 class TestLLtype(BaseTestOptimizeOpt, LLtypeMixin):
     pass



More information about the Pypy-commit mailing list