[pypy-commit] pypy stmgc-c4: fix and expand test

Raemi noreply at buildbot.pypy.org
Wed Jul 31 15:22:30 CEST 2013


Author: Remi Meier <remi.meier at gmail.com>
Branch: stmgc-c4
Changeset: r65865:28cb2c7bb151
Date: 2013-07-31 14:02 +0200
http://bitbucket.org/pypy/pypy/changeset/28cb2c7bb151/

Log:	fix and expand test

diff --git a/rpython/jit/backend/llsupport/test/test_stmrewrite.py b/rpython/jit/backend/llsupport/test/test_stmrewrite.py
--- a/rpython/jit/backend/llsupport/test/test_stmrewrite.py
+++ b/rpython/jit/backend/llsupport/test/test_stmrewrite.py
@@ -133,28 +133,33 @@
             jump()
         """)
 
-    def test_invalidate_read_status_after_write_to_array(self):
-        self.check_rewrite("""
+    def test_invalidate_read_status_after_write_array_interior(self):
+        ops = ['getarrayitem_gc', 'getinteriorfield_gc']
+        original = """
             [p0, i1, i2]
-            p1 = getarrayitem_gc(p0, i1, descr=adescr)
-            p2 = getarrayitem_gc(p0, i2, descr=adescr)
+            p1 = %s(p0, i1, descr=adescr)
+            p2 = %s(p0, i2, descr=adescr)
             p3 = getfield_gc(p1, descr=tzdescr)
             setfield_gc(p2, p0, descr=tzdescr)
             p4 = getfield_gc(p1, descr=tzdescr)
             jump()
-        """, """
+        """
+        rewritten = """
             [p0, i1, i2]
             cond_call_stm_b(p0, descr=P2Rdescr)
-            p1 = getarrayitem_gc(p0, i1, descr=adescr)
-            p2 = getarrayitem_gc(p0, i2, descr=adescr)
+            p1 = %s(p0, i1, descr=adescr)
+            p2 = %s(p0, i2, descr=adescr)
             cond_call_stm_b(p1, descr=P2Rdescr)
             p3 = getfield_gc(p1, descr=tzdescr)
-            cond_call_stm_b(p2, descr=P2Rdescr)
+            cond_call_stm_b(p2, descr=P2Wdescr)
             setfield_gc(p2, p0, descr=tzdescr)
             cond_call_stm_b(p1, descr=P2Rdescr)
             p4 = getfield_gc(p1, descr=tzdescr)
             jump()
-        """)
+        """
+        for op in ops:
+            self.check_rewrite(original % (op, op), 
+                               rewritten % (op, op))
 
     def test_rewrite_write_barrier_after_malloc(self):
         self.check_rewrite("""


More information about the pypy-commit mailing list