[PATCH] [SCEV] make SCEV smarter about proving no-wrap.
Sanjoy Das
sanjoy at playingwithpointers.com
Tue Mar 3 23:14:42 PST 2015
On Tue, Mar 3, 2015 at 11:10 PM, Andrew Trick <atrick at apple.com> wrote:
>
>> On Mar 3, 2015, at 11:07 PM, Sanjoy Das <sanjoy at playingwithpointers.com> wrote:
>>
>> ================
>> Comment at: lib/Analysis/ScalarEvolution.cpp:1357
>> @@ +1356,3 @@
>> +//
>> +// If (S-T)+T does not overflow ... (3)
>> +//
>> ----------------
>> atrick wrote:
>>> I still don't see the bug. How can (3) be false with (1) and (2)? A counter example would help.
>> You're right, (3) is just (1) in the 0th iteration. I'll fix this.
>
> Well, step (X) could be less than (T), but either way it’s covered by (1) or (2).
I'm not using any knowledge of Step/X. (1) is "({S-T,+,X} + T) does
not overflow". In the 0th iteration (before the backedge is taken
even once) this implies ((S-T)+T) does not overflow. Am I missing
something?
-- Sanjoy
> -Andy
>
>>
>> http://reviews.llvm.org/D7980
>>
>> EMAIL PREFERENCES
>> http://reviews.llvm.org/settings/panel/emailpreferences/
>>
>>
>
More information about the llvm-commits
mailing list