[pypy-commit] pypy conditional_call_value_4: adapt tests
arigo
pypy.commits at gmail.com
Wed Nov 23 04:40:14 EST 2016
Author: Armin Rigo <arigo at tunes.org>
Branch: conditional_call_value_4
Changeset: r88571:983b2cd122c4
Date: 2016-11-23 10:39 +0100
http://bitbucket.org/pypy/pypy/changeset/983b2cd122c4/
Log: adapt tests
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
@@ -83,21 +83,24 @@
assert self.interp_operations(main, [5]) == 1
def test_cond_call_constant_in_pyjitpl(self):
+ @jit.elidable
def f(a, b):
return a + b
def main(n):
# this is completely constant-folded because the arguments
# to f() are constants.
- return jit.conditional_call_elidable(n, 23, f, 40, 2)
+ return jit.conditional_call_value(n, f, 40, 2)
- assert main(12) == 12 # because 12 != 23
- assert self.interp_operations(main, [12]) == 12 # because 12 != 23
+ assert main(12) == 12
+ assert main(0) == 42
+ assert self.interp_operations(main, [12]) == 12
self.check_operations_history(finish=1) # empty history
- assert self.interp_operations(main, [23]) == 42 # because 23 == 23
+ assert self.interp_operations(main, [0]) == 42
self.check_operations_history(finish=1) # empty history
def test_cond_call_constant_in_optimizer(self):
myjitdriver = jit.JitDriver(greens = ['m'], reds = ['n', 'p'])
+ @jit.elidable
def externfn(x):
return x - 3
class V:
@@ -108,46 +111,48 @@
myjitdriver.can_enter_jit(n=n, p=p, m=m)
myjitdriver.jit_merge_point(n=n, p=p, m=m)
v = V(m)
- n -= jit.conditional_call_elidable(p, -42, externfn, v.value)
+ n -= jit.conditional_call_value(p, externfn, v.value)
return n
- res = self.meta_interp(f, [21, 5, -42])
+ res = self.meta_interp(f, [21, 5, 0])
assert res == -1
- # the COND_CALL_PURE is constant-folded away by optimizeopt.py
+ # the COND_CALL_VALUE is constant-folded away by optimizeopt.py
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
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)
+ assert p > -1
+ assert p < 1
+ n -= jit.conditional_call_value(p, externfn, n)
return n
- res = self.meta_interp(f, [21, 5, 15])
+ res = self.meta_interp(f, [21, 5, 0])
assert res == -1
- # optimizer: the COND_CALL_PURE is turned into a regular
- # CALL_PURE, which itself becomes CALL
+ # optimizer: the COND_CALL_VALUE is turned into a regular
+ # CALL_PURE, which itself becomes a CALL
self.check_resops(call_pure_i=0, cond_call_pure_i=0, call_i=2,
int_sub=2)
def test_cond_call_constant_in_optimizer_3(self):
myjitdriver = jit.JitDriver(greens = ['m'], reds = ['n', 'p'])
+ @jit.elidable
def externfn(x):
return 1
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
+ assert p > -1
+ assert p < 1
n0 = n
- n -= jit.conditional_call_elidable(p, 15, externfn, n0)
- n -= jit.conditional_call_elidable(p, 15, externfn, n0)
+ n -= jit.conditional_call_value(p, externfn, n0)
+ n -= jit.conditional_call_value(p, externfn, n0)
return n
res = self.meta_interp(f, [21, 5, 15])
assert res == -1
@@ -161,19 +166,20 @@
class X:
def __init__(self, value):
self.value = value
- self.triple = -1
+ self.triple = 0
+ @jit.elidable
def _compute_triple(self):
self.triple = self.value * 3
return self.triple
def get_triple(self):
- return jit.conditional_call_elidable(self.triple, -1,
- X._compute_triple, self)
- def main(n, initvalue):
+ return jit.conditional_call_value(self.triple,
+ X._compute_triple, self)
+ def main(n):
x = X(n)
- x.triple = initvalue
return x.get_triple() + x.get_triple()
- assert self.interp_operations(main, [100, -1]) == 600
+ assert self.interp_operations(main, [100]) == 600
+ XXX
self.check_operations_history(finish=1) # empty history
More information about the pypy-commit
mailing list