Author: Armin Rigo <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit