[pypy-commit] pypy stmgc-c7: various fixes until llsupport/test/* pass again

arigo noreply at buildbot.pypy.org
Wed Nov 12 12:04:07 CET 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: stmgc-c7
Changeset: r74477:67cf1848a979
Date: 2014-11-12 12:03 +0100
http://bitbucket.org/pypy/pypy/changeset/67cf1848a979/

Log:	various fixes until llsupport/test/* pass again

diff --git a/rpython/jit/backend/llsupport/rewrite.py b/rpython/jit/backend/llsupport/rewrite.py
--- a/rpython/jit/backend/llsupport/rewrite.py
+++ b/rpython/jit/backend/llsupport/rewrite.py
@@ -70,7 +70,7 @@
                 continue
             if op.is_guard():
                 self.emit_pending_zeros()
-            elif op.can_malloc():
+            elif op.is_call():
                 self.emitting_an_operation_that_can_collect()
             elif op.getopnum() == rop.LABEL:
                 self.emitting_an_operation_that_can_collect()
@@ -547,7 +547,7 @@
 
     def must_apply_write_barrier(self, val, v):
         if val not in self.write_barrier_applied:
-            if isinstance(v, BoxPtr) or (isinstance(v, ConstPtr) and
+            if (isinstance(v, BoxPtr) or (isinstance(v, ConstPtr) and
                                rgc.needs_write_barrier(v.value))):
                 return True
         return False
diff --git a/rpython/jit/backend/llsupport/stmrewrite.py b/rpython/jit/backend/llsupport/stmrewrite.py
--- a/rpython/jit/backend/llsupport/stmrewrite.py
+++ b/rpython/jit/backend/llsupport/stmrewrite.py
@@ -84,7 +84,7 @@
             return
         # ----------  other ignored ops  ----------
         if opnum in (rop.STM_SHOULD_BREAK_TRANSACTION, rop.FORCE_TOKEN,
-                     rop.READ_TIMESTAMP, rop.MARK_OPAQUE_PTR,
+                     rop.MARK_OPAQUE_PTR,
                      rop.JIT_DEBUG, rop.KEEPALIVE,
                      rop.QUASIIMMUT_FIELD, rop.RECORD_KNOWN_CLASS,
                      ):
diff --git a/rpython/jit/backend/llsupport/test/test_rewrite.py b/rpython/jit/backend/llsupport/test/test_rewrite.py
--- a/rpython/jit/backend/llsupport/test/test_rewrite.py
+++ b/rpython/jit/backend/llsupport/test/test_rewrite.py
@@ -103,7 +103,6 @@
         signedframedescr = self.cpu.signedframedescr
         floatframedescr = self.cpu.floatframedescr
         casmdescr.compiled_loop_token = clt
-        tzdescr = None # noone cares
         #
         namespace.update(locals())
         #
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
@@ -4,7 +4,8 @@
 from rpython.jit.metainterp import resoperation
 from rpython.jit.backend.llsupport.test.test_rewrite import (
     RewriteTests, BaseFakeCPU)
-from rpython.rtyper.lltypesystem import lltype, rclass, rffi, llmemory
+from rpython.rtyper.lltypesystem import lltype, rffi, llmemory
+from rpython.rtyper import rclass
 
 
 def test_all_operations_with_gc_in_their_name():
@@ -72,6 +73,7 @@
         for name, value in self.gc_ll_descr.__dict__.items():
             if name.endswith('descr') and name[1] == '2' and len(name) == 8:
                 namespace[name] = value     # "X2Ydescr"
+        self.gc_ll_descr.malloc_zero_filled = True
         RewriteTests.check_rewrite(self, frm_operations, to_operations,
                                    **namespace)
 
@@ -340,7 +342,6 @@
             "i3 = int_add(i1, i2)",   # all pure operations
             "f3 = float_abs(f1)",
             "i3 = force_token()",
-            "i3 = read_timestamp()",
             "i3 = mark_opaque_ptr(p1)",
             "jit_debug(i1, i2)",
             "keepalive(i1)",
@@ -546,14 +547,14 @@
         self.check_rewrite("""
             [p1, p2, i2, p3, i3]
             setarrayitem_gc(p1, i2, p2, descr=adescr) #noptr
-            i4 = read_timestamp()
+            i4 = force_token()
             setarrayitem_gc(p1, i3, p3, descr=adescr) #noptr
             jump()
         """, """
             [p1, p2, i2, p3, i3]
             cond_call_gc_wb_array(p1, i2, descr=wbdescr)
             setarrayitem_gc(p1, i2, p2, descr=adescr)
-            i4 = read_timestamp()
+            i4 = force_token()
             cond_call_gc_wb_array(p1, i3, descr=wbdescr)
             setarrayitem_gc(p1, i3, p3, descr=adescr)
             $DUMMYALLOC
@@ -564,14 +565,14 @@
         self.check_rewrite("""
             [p1, p2, i2, p3, i3]
             setinteriorfield_gc(p1, i2, p2, descr=intzdescr)
-            i4 = read_timestamp()
+            i4 = force_token()
             setinteriorfield_gc(p1, i3, p3, descr=intzdescr)
             jump()
         """, """
             [p1, p2, i2, p3, i3]
             cond_call_gc_wb_array(p1, i2, descr=wbdescr)
             setinteriorfield_gc(p1, i2, p2, descr=intzdescr)
-            i4 = read_timestamp()
+            i4 = force_token()
             cond_call_gc_wb_array(p1, i3, descr=wbdescr)
             setinteriorfield_gc(p1, i3, p3, descr=intzdescr)
             $DUMMYALLOC
diff --git a/rpython/jit/backend/x86/assembler.py b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -1213,7 +1213,7 @@
                 if shadowstack_reg is None:
                     mc.MOV(ecx, self.heap_shadowstack_top())
                     shadowstack_reg = ecx
-                mc.MOV(ebp, mem(shadowstack_reg, -WORD))
+                mc.MOV(ebp, mem(self.SEGMENT_NO, shadowstack_reg, -WORD))
         wbdescr = self.cpu.gc_ll_descr.write_barrier_descr
         if gcrootmap and wbdescr:
             # frame never uses card marking, so we enforce this is not


More information about the pypy-commit mailing list