[pypy-commit] pypy stmgc-c4: reenable gcremovetypeptr. seems to work now

Raemi noreply at buildbot.pypy.org
Thu Aug 8 16:15:13 CEST 2013


Author: Remi Meier <remi.meier at gmail.com>
Branch: stmgc-c4
Changeset: r66014:dba65ecc13b8
Date: 2013-08-06 10:15 +0200
http://bitbucket.org/pypy/pypy/changeset/dba65ecc13b8/

Log:	reenable gcremovetypeptr. seems to work now

diff --git a/rpython/config/translationoption.py b/rpython/config/translationoption.py
--- a/rpython/config/translationoption.py
+++ b/rpython/config/translationoption.py
@@ -75,7 +75,7 @@
                      "minimark": [("translation.gctransformer", "framework")],
                      "stmgc": [("translation.gctransformer", "framework"),
                                ("translation.gcrootfinder", "stm"),
-                               ("translation.gcremovetypeptr", False)],
+                               ("translation.gcremovetypeptr", True)],
                      },
                  suggests = {
                      },
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
@@ -53,6 +53,13 @@
                                  rop.PTR_NE, rop.INSTANCE_PTR_NE):
                 self.handle_ptr_eq(op)
                 continue
+            # ----------  guard_class  ----------
+            if op.getopnum() == rop.GUARD_CLASS:
+                assert self.cpu.vtable_offset is None
+                # requires gcremovetypeptr translation option
+                # uses h_tid which doesn't need a read-barrier
+                self.newops.append(op)
+                continue
             # ----------  pure operations, guards  ----------
             if op.is_always_pure() or op.is_guard() or op.is_ovf():
                 self.newops.append(op)


More information about the pypy-commit mailing list