Author: Hakan Ardo <ha...@debian.org> Branch: Changeset: r48682:9f81b789732c Date: 2011-11-03 07:50 +0100 http://bitbucket.org/pypy/pypy/changeset/9f81b789732c/
Log: test short preamble and non constant case aswell diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py --- a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py +++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py @@ -7355,7 +7355,7 @@ """ self.optimize_loop(ops, expected) - def test_repeated_setfield_mixed_with_guard(self): + def test_repeated_constant_setfield_mixed_with_guard(self): ops = """ [p22, p18] setfield_gc(p22, 2, descr=valuedescr) @@ -7369,11 +7369,48 @@ guard_nonnull_class(p18, ConstClass(node_vtable)) [] jump(p22, p18) """ + short = """ + [p22, p18] + i1 = getfield_gc(p22, descr=valuedescr) + guard_value(i1, 2) [] + jump(p22, p18) + """ expected = """ [p22, p18] jump(p22, p18) """ - self.optimize_loop(ops, expected, preamble) + self.optimize_loop(ops, expected, preamble, expected_short=short) + + def test_repeated_setfield_mixed_with_guard(self): + ops = """ + [p22, p18, i1] + i2 = getfield_gc(p22, descr=valuedescr) + call(i2, descr=nonwritedescr) + setfield_gc(p22, i1, descr=valuedescr) + guard_nonnull_class(p18, ConstClass(node_vtable)) [] + setfield_gc(p22, i1, descr=valuedescr) + jump(p22, p18, i1) + """ + preamble = """ + [p22, p18, i1] + i2 = getfield_gc(p22, descr=valuedescr) + call(i2, descr=nonwritedescr) + setfield_gc(p22, i1, descr=valuedescr) + guard_nonnull_class(p18, ConstClass(node_vtable)) [] + jump(p22, p18, i1, i1) + """ + short = """ + [p22, p18, i1] + i2 = getfield_gc(p22, descr=valuedescr) + jump(p22, p18, i1, i2) + """ + expected = """ + [p22, p18, i1, i2] + call(i2, descr=nonwritedescr) + setfield_gc(p22, i1, descr=valuedescr) + jump(p22, p18, i1, i1) + """ + self.optimize_loop(ops, expected, preamble, expected_short=short) class TestLLtype(OptimizeOptTest, LLtypeMixin): pass _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit