[pypy-commit] pypy stmgc-c4: satisfy some tests
Raemi
noreply at buildbot.pypy.org
Mon Jul 15 12:18:05 CEST 2013
Author: Remi Meier <remi.meier at gmail.com>
Branch: stmgc-c4
Changeset: r65401:d11b7c7058b0
Date: 2013-07-15 12:17 +0200
http://bitbucket.org/pypy/pypy/changeset/d11b7c7058b0/
Log: satisfy some tests
diff --git a/rpython/jit/backend/llsupport/test/zrpy_gc_test.py b/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
--- a/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
+++ b/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
@@ -75,11 +75,18 @@
from rpython.translator.c import genc
#
t = TranslationContext()
- t.config.translation.gc = gc
+ gcrootfinder = kwds['gcrootfinder']
+ if gcrootfinder == 'stm':
+ t.config.translation.stm = True
+ t.config.translation.gc = 'stmgc'
+ else:
+ t.config.translation.gc = gc
+ #
if gc != 'boehm':
t.config.translation.gcremovetypeptr = True
for name, value in kwds.items():
setattr(t.config.translation, name, value)
+
ann = t.buildannotator()
ann.build_types(f, [s_list_of_strings], main_entry_point=True)
t.buildrtyper().specialize()
diff --git a/rpython/jit/backend/test/runner_test.py b/rpython/jit/backend/test/runner_test.py
--- a/rpython/jit/backend/test/runner_test.py
+++ b/rpython/jit/backend/test/runner_test.py
@@ -2188,7 +2188,7 @@
operations = [
ResOperation(rop.COND_CALL_GC_WB, [p0, ConstInt(0)], None,
descr=WriteBarrierDescr()),
- ResOperation(rop.FINISH, [p0], None, descr=BasicFailDescr(1))
+ ResOperation(rop.FINISH, [p0], None, descr=BasicFinalDescr(0))
]
inputargs = [p0]
looptoken = JitCellToken()
@@ -4246,10 +4246,9 @@
class WBDescrForTests(AbstractDescr):
returns_modified_object = False
b_slowpath = (0, 0, 0, 0)
- def get_b_slowpath(self, c1, c2):
- return self.b_slowpath[c1+2*c2]
- def set_b_slowpath(self, c1, c2, addr):
- i = c1+2*c2
- self.b_slowpath = (self.b_slowpath[:i] + (addr,) +
- self.b_slowpath[i+1:])
+ def get_b_slowpath(self, c1):
+ return self.b_slowpath[c1]
+ def set_b_slowpath(self, c1, addr):
+ self.b_slowpath = (self.b_slowpath[:c1] + (addr,) +
+ self.b_slowpath[c1+1:])
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
@@ -1032,19 +1032,22 @@
cb.emit_no_collect()
def _reload_frame_if_necessary(self, mc, align_stack=False):
- gcrootmap = self.cpu.gc_ll_descr.gcrootmap
+ gc_ll_descr = self.cpu.gc_ll_descr
+ gcrootmap = gc_ll_descr.gcrootmap
if gcrootmap and gcrootmap.is_shadow_stack:
rst = gcrootmap.get_root_stack_top_addr()
mc.MOV(ecx, heap(rst))
mc.MOV(ebp, mem(ecx, -WORD))
if gcrootmap and gcrootmap.is_stm:
- wbdescr = self.cpu.gc_ll_descr.P2Wdescr
+ if not hasattr(gc_ll_descr, 'P2Wdescr'):
+ raise Exception("unreachable code")
+ wbdescr = gc_ll_descr.P2Wdescr
self._stm_barrier_fastpath(mc, wbdescr, [ebp], is_frame=True,
align_stack=align_stack)
return
- wbdescr = self.cpu.gc_ll_descr.write_barrier_descr
+ wbdescr = gc_ll_descr.write_barrier_descr
if gcrootmap and wbdescr:
# frame never uses card marking, so we enforce this is not
# an array
diff --git a/rpython/jit/backend/x86/regalloc.py b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -825,7 +825,7 @@
def consider_call_malloc_nursery_varsize_frame(self, op):
gc_ll_descr = self.assembler.cpu.gc_ll_descr
- assert gc_ll_descr.max_size_of_young_obj is not None
+ assert gc_ll_descr.get_malloc_slowpath_addr() is not None
# ^^^ if this returns None, don't translate the rest of this function
#
size_box = op.getarg(0)
@@ -850,10 +850,8 @@
def consider_call_malloc_nursery_varsize(self, op):
gc_ll_descr = self.assembler.cpu.gc_ll_descr
- assert gc_ll_descr.max_size_of_young_obj is not None
- # ^^^ if this returns None, don't translate the rest of this function
- #
- if not hasattr(gc_ll_descr, 'max_size_of_young_obj'):
+ if not hasattr(gc_ll_descr, 'max_size_of_young_obj') \
+ or gc_ll_descr.max_size_of_young_obj is None:
raise Exception("unreachable code")
# for boehm, this function should never be called
arraydescr = op.getdescr()
diff --git a/rpython/jit/backend/x86/test/test_zrpy_gc.py b/rpython/jit/backend/x86/test/test_zrpy_gc.py
--- a/rpython/jit/backend/x86/test/test_zrpy_gc.py
+++ b/rpython/jit/backend/x86/test/test_zrpy_gc.py
@@ -1,5 +1,9 @@
from rpython.jit.backend.llsupport.test.zrpy_gc_test import CompileFrameworkTests
+class TestSTMShadowStack(CompileFrameworkTests):
+ gcrootfinder = "stm"
+
+
class TestShadowStack(CompileFrameworkTests):
gcrootfinder = "shadowstack"
diff --git a/rpython/translator/backendopt/graphanalyze.py b/rpython/translator/backendopt/graphanalyze.py
--- a/rpython/translator/backendopt/graphanalyze.py
+++ b/rpython/translator/backendopt/graphanalyze.py
@@ -1,5 +1,6 @@
from rpython.translator.simplify import get_graph, get_funcobj
from rpython.tool.algo.unionfind import UnionFind
+from rpython.rtyper.lltypesystem import lltype
class GraphAnalyzer(object):
More information about the pypy-commit
mailing list