[pypy-commit] pypy nogil-unsafe-2: (arigo, fijal) fix the merge
fijal
pypy.commits at gmail.com
Tue Jul 11 10:19:46 EDT 2017
Author: fijal
Branch: nogil-unsafe-2
Changeset: r91860:fe57861ced6a
Date: 2017-07-11 15:18 +0200
http://bitbucket.org/pypy/pypy/changeset/fe57861ced6a/
Log: (arigo, fijal) fix the merge
diff --git a/rpython/memory/gctransform/shadowstack.py b/rpython/memory/gctransform/shadowstack.py
--- a/rpython/memory/gctransform/shadowstack.py
+++ b/rpython/memory/gctransform/shadowstack.py
@@ -174,7 +174,7 @@
self.thread_setup = thread_setup
self.thread_run_ptr = getfn(thread_run, [], annmodel.s_None,
- inline=True, minimal_transform=False)
+ minimal_transform=False)
self.thread_die_ptr = getfn(thread_die, [], annmodel.s_None,
minimal_transform=False)
@@ -182,6 +182,16 @@
from rpython.rlib import _stacklet_shadowstack
_stacklet_shadowstack.complete_destrptr(gctransformer)
+ def postprocess_graph(self, gct, graph, any_inlining):
+ from rpython.memory.gctransform import shadowcolor
+ if any_inlining:
+ shadowcolor.postprocess_inlining(graph)
+ use_push_pop = shadowcolor.postprocess_graph(graph, gct.c_const_gcdata)
+ if use_push_pop and graph in gct.graphs_to_inline:
+ log.WARNING("%r is marked for later inlining, "
+ "but is using push/pop roots. Disabled" % (graph,))
+ del gct.graphs_to_inline[graph]
+
class ShadowStackRootWalker(BaseRootWalker):
def __init__(self, gctransformer):
diff --git a/rpython/translator/c/gc.py b/rpython/translator/c/gc.py
--- a/rpython/translator/c/gc.py
+++ b/rpython/translator/c/gc.py
@@ -446,7 +446,7 @@
def enter_roots_frame(self, funcgen, (c_gcdata, c_numcolors)):
numcolors = c_numcolors.value
# XXX hard-code the field name here
- gcpol_ss = '%s->gcd_inst_root_stack_top' % funcgen.expr(c_gcdata)
+ gcpol_ss = 'pypy_threadlocal.shadowstack_top'
#
yield ('typedef struct { void %s; } pypy_ss_t;'
% ', '.join(['*s%d' % i for i in range(numcolors)]))
More information about the pypy-commit
mailing list