Author: Armin Rigo <ar...@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})) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit