[pypy-commit] pypy faster-rstruct-2: fix bhimpl_gc_store_indexed_i, which was not tested because the blackhole didn't see the op :(
antocuni
pypy.commits at gmail.com
Fri May 12 19:25:43 EDT 2017
Author: Antonio Cuni <anto.cuni at gmail.com>
Branch: faster-rstruct-2
Changeset: r91275:3c31e7d36cc9
Date: 2017-05-12 19:22 +0200
http://bitbucket.org/pypy/pypy/changeset/3c31e7d36cc9/
Log: fix bhimpl_gc_store_indexed_i, which was not tested because the
blackhole didn't see the op :(
diff --git a/rpython/jit/metainterp/blackhole.py b/rpython/jit/metainterp/blackhole.py
--- a/rpython/jit/metainterp/blackhole.py
+++ b/rpython/jit/metainterp/blackhole.py
@@ -1478,12 +1478,17 @@
def bhimpl_gc_load_indexed_f(cpu, addr, index, scale, base_ofs, bytes):
return cpu.bh_gc_load_indexed_f(addr, index,scale,base_ofs, bytes)
- @arguments("cpu", "r", "i", "i", "i", "i", "i")
- def bhimpl_gc_store_indexed_i(cpu, addr, index, val, scale, base_ofs, bytes):
- return cpu.bh_gc_store_indexed_i(addr, index, val, scale,base_ofs, bytes)
- @arguments("cpu", "r", "i", "f", "i", "i", "i")
- def bhimpl_gc_store_indexed_f(cpu, addr, index, val, scale, base_ofs, bytes):
- return cpu.bh_gc_store_indexed_f(addr, index, val, scale,base_ofs, bytes)
+ @arguments("cpu", "r", "i", "i", "i", "i", "i", "d")
+ def bhimpl_gc_store_indexed_i(cpu, addr, index, val, scale, base_ofs, bytes,
+ arraydescr):
+ return cpu.bh_gc_store_indexed_i(addr, index, val, scale,base_ofs, bytes,
+ arraydescr)
+
+ @arguments("cpu", "r", "i", "f", "i", "i", "i", "d")
+ def bhimpl_gc_store_indexed_f(cpu, addr, index, val, scale, base_ofs, bytes,
+ arraydescr):
+ return cpu.bh_gc_store_indexed_f(addr, index, val, scale,base_ofs, bytes,
+ arraydescr)
@arguments("r", "d", "d")
def bhimpl_record_quasiimmut_field(struct, fielddescr, mutatefielddescr):
diff --git a/rpython/jit/metainterp/test/support.py b/rpython/jit/metainterp/test/support.py
--- a/rpython/jit/metainterp/test/support.py
+++ b/rpython/jit/metainterp/test/support.py
@@ -19,7 +19,8 @@
supports_floats=True,
supports_longlong=False,
supports_singlefloats=False,
- translationoptions={}, **kwds):
+ translationoptions={},
+ backendopt_inline_threshold=0, **kwds):
from rpython.jit.codewriter import support
class FakeJitCell(object):
@@ -59,7 +60,7 @@
FakeWarmRunnerState.enable_opts = {}
func._jit_unroll_safe_ = True
- rtyper = support.annotate(func, values,
+ rtyper = support.annotate(func, values, inline=backendopt_inline_threshold,
translationoptions=translationoptions)
graphs = rtyper.annotator.translator.graphs
testself.all_graphs = graphs
diff --git a/rpython/jit/metainterp/test/test_llop.py b/rpython/jit/metainterp/test/test_llop.py
--- a/rpython/jit/metainterp/test/test_llop.py
+++ b/rpython/jit/metainterp/test/test_llop.py
@@ -8,6 +8,7 @@
from rpython.jit.metainterp.history import getkind
from rpython.jit.metainterp.test.support import LLJitMixin
+
class TestLLOp(BaseLLOpTest, LLJitMixin):
# for the individual tests see
@@ -37,7 +38,11 @@
# I'm not sure why, but if I use an assert, the test doesn't fail
raise ValueError('got != expected')
return len(got)
- return self.interp_operations(f, [value], supports_singlefloats=True)
+ # we pass a big inline_threshold to ensure that newlist_and_gc_store
+ # is inlined, else the blackhole does not see (and thus we do not
+ # test!) the llop.gc_store_indexed
+ return self.interp_operations(f, [value], supports_singlefloats=True,
+ backendopt_inline_threshold=33)
def test_force_virtual_str_storage(self):
More information about the pypy-commit
mailing list