Author: Armin Rigo <ar...@tunes.org> Branch: conditional_call_value_2 Changeset: r87001:8e0af8639310 Date: 2016-09-11 16:33 +0200 http://bitbucket.org/pypy/pypy/changeset/8e0af8639310/
Log: Next test, passing diff --git a/rpython/jit/metainterp/pyjitpl.py b/rpython/jit/metainterp/pyjitpl.py --- a/rpython/jit/metainterp/pyjitpl.py +++ b/rpython/jit/metainterp/pyjitpl.py @@ -3099,7 +3099,6 @@ arg_consts = [executor.constant_from_op(a) for a in argboxes] self.call_pure_results[arg_consts] = resbox_as_const if is_cond: - import pdb;pdb.set_trace() return op # there is no COND_CALL_I/R opnum = OpHelpers.call_pure_for_descr(descr) self.history.cut(patch_pos) diff --git a/rpython/jit/metainterp/resoperation.py b/rpython/jit/metainterp/resoperation.py --- a/rpython/jit/metainterp/resoperation.py +++ b/rpython/jit/metainterp/resoperation.py @@ -884,8 +884,6 @@ _args = None def initarglist(self, args): - if self.opnum == rop.CALL_PURE_I: - import pdb;pdb.set_trace() self._args = args if not we_are_translated() and \ self.__class__.__name__.startswith('FINISH'): # XXX remove me diff --git a/rpython/jit/metainterp/test/test_call.py b/rpython/jit/metainterp/test/test_call.py --- a/rpython/jit/metainterp/test/test_call.py +++ b/rpython/jit/metainterp/test/test_call.py @@ -116,6 +116,29 @@ self.check_resops(call_pure_i=0, cond_call_pure_i=0, call_i=0, int_sub=2) + def test_cond_call_constant_in_optimizer_2(self): + myjitdriver = jit.JitDriver(greens = ['m'], reds = ['n', 'p']) + @jit.elidable + def externfn(x): + return 2 + class V: + def __init__(self, value): + self.value = value + def f(n, m, p): + while n > 0: + myjitdriver.can_enter_jit(n=n, p=p, m=m) + myjitdriver.jit_merge_point(n=n, p=p, m=m) + assert p > 14 + assert p < 16 + n -= jit.conditional_call_elidable(p, 15, externfn, n) + return n + res = self.meta_interp(f, [21, 5, 15]) + assert res == -1 + # optimizer: the COND_CALL_PURE is turned into a regular + # CALL_PURE, which itself becomes CALL + self.check_resops(call_pure_i=0, cond_call_pure_i=0, call_i=2, + int_sub=2) + class TestCall(LLJitMixin, CallTest): pass _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit