[pypy-commit] pypy default: Add tests for 341027e99d33.
arigo
noreply at buildbot.pypy.org
Wed Dec 17 18:57:53 CET 2014
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r74995:41c42127ea0c
Date: 2014-12-17 17:57 +0000
http://bitbucket.org/pypy/pypy/changeset/41c42127ea0c/
Log: Add tests for 341027e99d33.
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -999,6 +999,40 @@
"""
self.optimize_loop(ops, expected)
+ def test_virtual_array_of_struct_arraycopy(self):
+ ops = """
+ [f0, f1]
+ p0 = new_array_clear(3, descr=complexarraydescr)
+ setinteriorfield_gc(p0, 0, f0, descr=compleximagdescr)
+ setinteriorfield_gc(p0, 0, f1, descr=complexrealdescr)
+ call(0, p0, p0, 0, 2, 1, descr=complexarraycopydescr)
+ f2 = getinteriorfield_gc(p0, 2, descr=complexrealdescr)
+ f3 = getinteriorfield_gc(p0, 2, descr=compleximagdescr)
+ escape(f2)
+ escape(f3)
+ finish(1)
+ """
+ expected = """
+ [f0, f1]
+ escape(f1)
+ escape(f0)
+ finish(1)
+ """
+ self.optimize_loop(ops, ops)
+ py.test.skip("XXX missing optimization: ll_arraycopy(array-of-structs)")
+
+ def test_nonvirtual_array_of_struct_arraycopy(self):
+ ops = """
+ [p0]
+ call(0, p0, p0, 0, 2, 1, descr=complexarraycopydescr)
+ f2 = getinteriorfield_gc(p0, 2, descr=compleximagdescr)
+ f3 = getinteriorfield_gc(p0, 2, descr=complexrealdescr)
+ escape(f2)
+ escape(f3)
+ finish(1)
+ """
+ self.optimize_loop(ops, ops)
+
def test_nonvirtual_1(self):
ops = """
[i]
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_util.py b/rpython/jit/metainterp/optimizeopt/test/test_util.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_util.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_util.py
@@ -223,6 +223,10 @@
complexarraydescr = cpu.arraydescrof(complexarray)
complexrealdescr = cpu.interiorfielddescrof(complexarray, "real")
compleximagdescr = cpu.interiorfielddescrof(complexarray, "imag")
+ complexarraycopydescr = cpu.calldescrof(FUNC, FUNC.ARGS, FUNC.RESULT,
+ EffectInfo([], [complexarraydescr], [], [], [complexarraydescr], [],
+ EffectInfo.EF_CANNOT_RAISE,
+ oopspecindex=EffectInfo.OS_ARRAYCOPY))
rawarraydescr = cpu.arraydescrof(lltype.Array(lltype.Signed,
hints={'nolength': True}))
More information about the pypy-commit
mailing list