[pypy-svn] r70260 - pypy/branch/jit-delayed-write/pypy/jit/metainterp/test
arigo at codespeak.net
arigo at codespeak.net
Wed Dec 23 13:58:13 CET 2009
Author: arigo
Date: Wed Dec 23 13:58:12 2009
New Revision: 70260
Modified:
pypy/branch/jit-delayed-write/pypy/jit/metainterp/test/test_optimizefindnode.py
pypy/branch/jit-delayed-write/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
Write a target test. (Does not pass yet.)
Modified: pypy/branch/jit-delayed-write/pypy/jit/metainterp/test/test_optimizefindnode.py
==============================================================================
--- pypy/branch/jit-delayed-write/pypy/jit/metainterp/test/test_optimizefindnode.py (original)
+++ pypy/branch/jit-delayed-write/pypy/jit/metainterp/test/test_optimizefindnode.py Wed Dec 23 13:58:12 2009
@@ -95,9 +95,14 @@
onedescr = cpu.fielddescrof(U, 'one')
FUNC = lltype.FuncType([lltype.Signed], lltype.Signed)
- nonwritedescr = cpu.calldescrof(FUNC, FUNC.ARGS, FUNC.RESULT, EffectInfo([], []))
- writeadescr = cpu.calldescrof(FUNC, FUNC.ARGS, FUNC.RESULT, EffectInfo([adescr], []))
- writearraydescr = cpu.calldescrof(FUNC, FUNC.ARGS, FUNC.RESULT, EffectInfo([adescr], [arraydescr]))
+ nonwritedescr = cpu.calldescrof(FUNC, FUNC.ARGS, FUNC.RESULT,
+ EffectInfo([], [], []))
+ writeadescr = cpu.calldescrof(FUNC, FUNC.ARGS, FUNC.RESULT,
+ EffectInfo([], [adescr], []))
+ writearraydescr = cpu.calldescrof(FUNC, FUNC.ARGS, FUNC.RESULT,
+ EffectInfo([], [adescr], [arraydescr]))
+ readadescr = cpu.calldescrof(FUNC, FUNC.ARGS, FUNC.RESULT,
+ EffectInfo([adescr], [], []))
cpu.class_sizes = {cpu.cast_adr_to_int(node_vtable_adr): cpu.sizeof(NODE),
cpu.cast_adr_to_int(node_vtable_adr2): cpu.sizeof(NODE2),
Modified: pypy/branch/jit-delayed-write/pypy/jit/metainterp/test/test_optimizeopt.py
==============================================================================
--- pypy/branch/jit-delayed-write/pypy/jit/metainterp/test/test_optimizeopt.py (original)
+++ pypy/branch/jit-delayed-write/pypy/jit/metainterp/test/test_optimizeopt.py Wed Dec 23 13:58:12 2009
@@ -2031,6 +2031,26 @@
"""
self.optimize_loop(ops, 'Not, Not, Not', expected)
+ def test_residual_call_invalidates_some_read_caches(self):
+ ops = """
+ [p1, i1, p2, i2]
+ setfield_gc(p1, i1, descr=valuedescr)
+ setfield_gc(p2, i2, descr=adescr)
+ i3 = call(i1, descr=readadescr)
+ setfield_gc(p1, i3, descr=valuedescr)
+ setfield_gc(p2, i3, descr=adescr)
+ jump(p1, i1, p2, i2)
+ """
+ expected = """
+ [p1, i1, p2, i2]
+ setfield_gc(p2, i2, descr=adescr)
+ i3 = call(i1, descr=readadescr)
+ setfield_gc(p1, i3, descr=valuedescr)
+ setfield_gc(p2, i3, descr=adescr)
+ jump(p1, i1, p2, i2)
+ """
+ self.optimize_loop(ops, 'Not, Not, Not, Not', expected)
+
class TestOOtype(BaseTestOptimizeOpt, OOtypeMixin):
More information about the Pypy-commit
mailing list