Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r87026:6de307feaa03 Date: 2016-09-12 11:16 +0200 http://bitbucket.org/pypy/pypy/changeset/6de307feaa03/
Log: Clean up some variants of 'conditional_call_*' that are rarely or never used. Keep only the 'ir' variant. diff --git a/rpython/jit/codewriter/jtransform.py b/rpython/jit/codewriter/jtransform.py --- a/rpython/jit/codewriter/jtransform.py +++ b/rpython/jit/codewriter/jtransform.py @@ -364,7 +364,7 @@ return getattr(self, 'handle_%s_indirect_call' % kind)(op) def rewrite_call(self, op, namebase, initialargs, args=None, - calldescr=None): + calldescr=None, force_ir=False): """Turn 'i0 = direct_call(fn, i1, i2, ref1, ref2)' into 'i0 = xxx_call_ir_i(fn, descr, [i1,i2], [ref1,ref2])'. The name is one of '{residual,direct}_call_{r,ir,irf}_{i,r,f,v}'.""" @@ -374,8 +374,9 @@ lst_i, lst_r, lst_f = self.make_three_lists(args) reskind = getkind(op.result.concretetype)[0] if lst_f or reskind == 'f': kinds = 'irf' - elif lst_i: kinds = 'ir' + elif lst_i or force_ir: kinds = 'ir' else: kinds = 'r' + if force_ir: assert kinds == 'ir' # no 'f' sublists = [] if 'i' in kinds: sublists.append(lst_i) if 'r' in kinds: sublists.append(lst_r) @@ -1577,7 +1578,7 @@ assert not calldescr.get_extra_info().check_forces_virtual_or_virtualizable() op1 = self.rewrite_call(op, 'conditional_call', op.args[:2], args=op.args[2:], - calldescr=calldescr) + calldescr=calldescr, force_ir=True) if self.callcontrol.calldescr_canraise(calldescr): op1 = [op1, SpaceOperation('-live-', [], None)] return op1 diff --git a/rpython/jit/metainterp/blackhole.py b/rpython/jit/metainterp/blackhole.py --- a/rpython/jit/metainterp/blackhole.py +++ b/rpython/jit/metainterp/blackhole.py @@ -1200,28 +1200,12 @@ return cpu.bh_call_v(func, args_i, args_r, args_f, calldescr) # conditional calls - note that they cannot return stuff - @arguments("cpu", "i", "i", "I", "d") - def bhimpl_conditional_call_i_v(cpu, condition, func, args_i, calldescr): - if condition: - cpu.bh_call_v(func, args_i, None, None, calldescr) - - @arguments("cpu", "i", "i", "R", "d") - def bhimpl_conditional_call_r_v(cpu, condition, func, args_r, calldescr): - if condition: - cpu.bh_call_v(func, None, args_r, None, calldescr) - @arguments("cpu", "i", "i", "I", "R", "d") def bhimpl_conditional_call_ir_v(cpu, condition, func, args_i, args_r, calldescr): if condition: cpu.bh_call_v(func, args_i, args_r, None, calldescr) - @arguments("cpu", "i", "i", "I", "R", "F", "d") - def bhimpl_conditional_call_irf_v(cpu, condition, func, args_i, args_r, - args_f, calldescr): - if condition: - cpu.bh_call_v(func, args_i, args_r, args_f, calldescr) - @arguments("cpu", "j", "R", returns="i") def bhimpl_inline_call_r_i(cpu, jitcode, args_r): return cpu.bh_call_i(jitcode.get_fnaddr_as_int(), 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 @@ -1056,23 +1056,11 @@ opimpl_residual_call_irf_f = _opimpl_residual_call3 opimpl_residual_call_irf_v = _opimpl_residual_call3 - @arguments("box", "box", "boxes", "descr", "orgpc") - def opimpl_conditional_call_i_v(self, condbox, funcbox, argboxes, calldescr, - pc): - self.do_conditional_call(condbox, funcbox, argboxes, calldescr, pc) - - opimpl_conditional_call_r_v = opimpl_conditional_call_i_v - @arguments("box", "box", "boxes2", "descr", "orgpc") def opimpl_conditional_call_ir_v(self, condbox, funcbox, argboxes, calldescr, pc): self.do_conditional_call(condbox, funcbox, argboxes, calldescr, pc) - @arguments("box", "box", "boxes3", "descr", "orgpc") - def opimpl_conditional_call_irf_v(self, condbox, funcbox, argboxes, - calldescr, pc): - self.do_conditional_call(condbox, funcbox, argboxes, calldescr, pc) - @arguments("int", "boxes3", "boxes3", "orgpc") def _opimpl_recursive_call(self, jdindex, greenboxes, redboxes, pc): targetjitdriver_sd = self.metainterp.staticdata.jitdrivers_sd[jdindex] _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit