Hi Hakan, On 14/04/11 14:53, Hakan Ardo wrote:
>> + def test_intbound_addsub_ge(self): >> + def main(n): >> + i, a, b = 0, 0, 0 >> + while i < n: >> + if i + 5 >= 5: >> + a += 1 >> + if i - 1 >= -1: >> + b += 1 >> + i += 1 >> + return (a, b) >> + # >> + log = self.run(main, [300], threshold=200) >> + assert log.result == (300, 300) >> + loop, = log.loops_by_filename(self.filepath) >> + assert loop.match(""" >> + i10 = int_lt(i8, i9) >> + guard_true(i10, descr=...) >> + # XXX: why do we need ovf check here? If we put a literal "300" >> + # instead of "n", it disappears > > With n==sys.maxint, the operation i+5 would be the one overflowing. yes, you are right of course. I was just thinking nonsense, but I realized only after I asked the question :-). Of course the ovf check needs to be there because we don't specialize the loop on the value of n. Although it might be cool to be able to do promotion at applevel, for those who really want :-) ciao, Anto _______________________________________________ pypy-dev@codespeak.net http://codespeak.net/mailman/listinfo/pypy-dev