Author: Armin Rigo <[email protected]>
Branch: stm-thread-2
Changeset: r57775:6987a98100d0
Date: 2012-10-03 15:18 +0000
http://bitbucket.org/pypy/pypy/changeset/6987a98100d0/
Log: Fix the previous merge :-/
diff --git a/pypy/rpython/memory/gctransform/framework.py
b/pypy/rpython/memory/gctransform/framework.py
--- a/pypy/rpython/memory/gctransform/framework.py
+++ b/pypy/rpython/memory/gctransform/framework.py
@@ -271,6 +271,9 @@
def _declare_functions(self, GCClass, getfn, s_gc, s_typeid16):
+ from pypy.rpython.memory.gc.base import ARRAY_TYPEID_MAP
+ from pypy.rpython.memory.gc import inspector
+
s_gcref = annmodel.SomePtr(llmemory.GCREF)
gcdata = self.gcdata
translator = self.translator
@@ -327,7 +330,6 @@
annmodel.s_None)
if hasattr(GCClass, 'heap_stats'):
- from pypy.rpython.memory.gc.base import ARRAY_TYPEID_MAP
self.heap_stats_ptr = getfn(GCClass.heap_stats.im_func,
[s_gc], annmodel.SomePtr(lltype.Ptr(ARRAY_TYPEID_MAP)),
minimal_transform=False)
@@ -435,7 +437,6 @@
else:
self.id_ptr = None
- from pypy.rpython.memory.gc import inspector
self.get_rpy_roots_ptr = getfn(inspector.get_rpy_roots,
[s_gc],
rgc.s_list_of_gcrefs(),
@@ -510,38 +511,6 @@
[s_gc, annmodel.SomeInteger()],
annmodel.SomeInteger())
- # thread support
- if translator.config.translation.continuation:
- root_walker.need_stacklet_support(self, getfn)
- if translator.config.translation.thread:
- root_walker.need_thread_support(self, getfn)
-
- self.layoutbuilder.encode_type_shapes_now()
-
- annhelper.finish() # at this point, annotate all mix-level helpers
- annhelper.backend_optimize()
-
- self.collect_analyzer = CollectAnalyzer(self.translator)
- self.collect_analyzer.analyze_all()
-
- s_gc = self.translator.annotator.bookkeeper.valueoftype(GCClass)
- r_gc = self.translator.rtyper.getrepr(s_gc)
- self.c_const_gc = rmodel.inputconst(r_gc, self.gcdata.gc)
- s_gc_data = self.translator.annotator.bookkeeper.valueoftype(
- gctypelayout.GCData)
- r_gc_data = self.translator.rtyper.getrepr(s_gc_data)
- self.c_const_gcdata = rmodel.inputconst(r_gc_data, self.gcdata)
- self.malloc_zero_filled = GCClass.malloc_zero_filled
-
- HDR = self.HDR = self.gcdata.gc.gcheaderbuilder.HDR
-
- size_gc_header = self.gcdata.gc.gcheaderbuilder.size_gc_header
- vtableinfo = (HDR, size_gc_header, self.gcdata.gc.typeid_is_in_field)
- self.c_vtableinfo = rmodel.inputconst(lltype.Void, vtableinfo)
- tig = self.layoutbuilder.type_info_group._as_ptr()
- self.c_type_info_group = rmodel.inputconst(lltype.typeOf(tig), tig)
- sko = llmemory.sizeof(gcdata.TYPE_INFO)
- self.c_vtinfo_skip_offset = rmodel.inputconst(lltype.typeOf(sko), sko)
def consider_constant(self, TYPE, value):
self.layoutbuilder.consider_constant(TYPE, value, self.gcdata.gc)
diff --git a/pypy/rpython/memory/gctransform/stmframework.py
b/pypy/rpython/memory/gctransform/stmframework.py
--- a/pypy/rpython/memory/gctransform/stmframework.py
+++ b/pypy/rpython/memory/gctransform/stmframework.py
@@ -1,4 +1,4 @@
-from pypy.rpython.memory.gctransform.framework import FrameworkGCTransformer
+from pypy.rpython.memory.gctransform import shadowstack
from pypy.rpython.memory.gctransform.framework import BaseRootWalker
from pypy.rpython.memory.gctransform.framework import sizeofaddr
from pypy.rpython.lltypesystem import lltype, llmemory
@@ -12,7 +12,7 @@
END_MARKER = -8 # keep in sync with src_stm/rpyintf.c
-class StmFrameworkGCTransformer(FrameworkGCTransformer):
+class StmFrameworkGCTransformer(shadowstack.ShadowStackFrameworkGCTransformer):
def _declare_functions(self, GCClass, getfn, s_gc, *args):
super(StmFrameworkGCTransformer, self)._declare_functions(
diff --git a/pypy/translator/c/gc.py b/pypy/translator/c/gc.py
--- a/pypy/translator/c/gc.py
+++ b/pypy/translator/c/gc.py
@@ -429,7 +429,7 @@
def OP_GC_STACK_BOTTOM(self, funcgen, op):
return 'pypy_asm_stack_bottom();'
-class StmFrameworkGcPolicy(FrameworkGcPolicy):
+class StmFrameworkGcPolicy(BasicFrameworkGcPolicy):
def gettransformer(self):
from pypy.rpython.memory.gctransform import stmframework
@@ -441,6 +441,6 @@
'ref': RefcountingGcPolicy,
'none': NoneGcPolicy,
'framework+shadowstack': ShadowStackFrameworkGcPolicy,
- 'framework+asmgcc': AsmGcRootFrameworkGcPolicy
+ 'framework+asmgcc': AsmGcRootFrameworkGcPolicy,
'framework+stm': StmFrameworkGcPolicy,
}
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit