Displaying 3 results from an estimated 3 matches for "isaddrecneverpoison".
2018 May 10
2
LLVM SCEV isAddRecNeverPoison and strength reduction
...8, 2018 at 2:34 AM, Gal Zohar <Gal.Zohar at ceva-dsp.com> wrote:
> I noticed that SCEV, when trying to perform strength reduction, doesn’t use
> the ability to prove an induction variable does not signed/unsigned wrap due
> to infinite loops.
>
> Is there an easy way to use the isAddRecNeverPoison function when
> determining if strength reduction is possible? In getZeroExtendExpr.
>
> Is there a reason why this doesn’t happen?
I guess your point is that in
int foo(int a) {
int sum = 0;
for (short i = 0; i < a; i++) {
sum++;
}
return sum;
}
either the loop is finit...
2019 Sep 29
3
ScalarEvolution invariants around wrapping flags
...he information everyone, it's clarified my thinking
> significantly. With that better understanding I've tracked the problem
> I'm seeing down to r366419 (https://reviews.llvm.org/D64868), which
> got committed in July.
>
> To me it looks like the patch is invalid because isAddRecNeverPoison
> is a loop-relative computation. To add the flags to the increment we'd
> need to know that the loop is guaranteed to execute at least once,
> which doesn't really have a query available.
>
> Does that sound right? And if so should we revert it or try to
> incorporate a l...
2019 Sep 19
2
ScalarEvolution invariants around wrapping flags
On 9/19/2019 9:41 AM, Andrew Trick via llvm-dev wrote:
>
>> On Sep 18, 2019, at 8:17 PM, Sanjoy Das <sanjoy at playingwithpointers.com> wrote:
>>
>>> 1. Callers are expected to not engage in speculation. ScalarEvolution
>>> itself must only create expressions it knows hold in all cases.
>> This is correct. There is some more relevant text in
>>