Author: Maciej Fijalkowski <fij...@gmail.com> Branch: conditional_call_value Changeset: r77159:c9ff8a58c585 Date: 2015-05-06 16:55 +0200 http://bitbucket.org/pypy/pypy/changeset/c9ff8a58c585/
Log: fix the test diff --git a/rpython/jit/metainterp/optimizeopt/rewrite.py b/rpython/jit/metainterp/optimizeopt/rewrite.py --- a/rpython/jit/metainterp/optimizeopt/rewrite.py +++ b/rpython/jit/metainterp/optimizeopt/rewrite.py @@ -417,6 +417,17 @@ op = op.copy_and_change(rop.CALL, args=op.getarglist()[1:]) self.emit_operation(op) + def optimize_COND_CALL_VALUE(self, op): + arg = op.getarg(0) + val = self.getvalue(arg) + if val.is_constant(): + if val.box.same_constant(CONST_0): + self.last_emitted_operation = REMOVED + self.make_equal_to(op.result, self.getvalue(op.getarg(1))) + return + op = op.copy_and_change(rop.CALL, args=op.getarglist()[2:]) + self.emit_operation(op) + def _optimize_nullness(self, op, box, expect_nonnull): value = self.getvalue(box) if value.is_nonnull(): diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py --- a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py +++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py @@ -8536,26 +8536,28 @@ def test_cond_call_value_with_a_constant(self): ops = """ + [p1, i1] + i0 = cond_call_value(1, 14, 123, p1, descr=plaincalldescr) + jump(p1, i0) + """ + expected = """ + [p1, i1] + i0 = call(123, p1, descr=plaincalldescr) + jump(p1, i0) + """ + self.optimize_loop(ops, expected) + + def test_cond_call_value_with_a_constant_2(self): + ops = """ + [p1, i1] + i0 = cond_call_value(0, 14, 123, p1, descr=plaincalldescr) + i5 = int_eq(i0, 14) + guard_true(i5) [] + jump(p1, i0) + """ + expected = """ [p1] - i0 = cond_call_value(1, 14, 123, p1, descr=plaincalldescr) - jump(i0) - """ - expected = """ - [p1] - i0 = call(123, p1, descr=plaincalldescr) - jump(i0) - """ - self.optimize_loop(ops, expected) - - def test_cond_call_value_with_a_constant_2(self): - ops = """ - [p1] - i0 = cond_call_value(0, 14, 123, p1, descr=plaincalldescr) - jump(i0) - """ - expected = """ - [p1] - jump(14) + jump(p1) """ self.optimize_loop(ops, expected) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit