Displaying 5 results from an estimated 5 matches for "bevaluev".
2013 Oct 01
3
[LLVMdev] ScalarEvolution::createNodeForPHI
...ody>
but the NSW flag that is present in the SUB instruction is not propagated in the
AddRec.
Looking in the source code I analyzed the construction of the SCEV for a PHINode
and during the analysis of the loop-invariant part of the increment the flags
NSW/NUW are set according to the Operator BEValueV
(ScalarEvoluton.cpp:3099-3113), but only Add and GEP operators are checked.
//-------------------------------------------------------------------------//
if (const AddOperator *OBO = dyn_cast<AddOperator>(BEValueV)) {
if (OBO->hasNoUnsignedWrap())
Flags = setFlags(Flags, SCEV::FlagN...
2013 Oct 02
0
[LLVMdev] ScalarEvolution::createNodeForPHI
...that is present in the SUB instruction is not propagated in the
> AddRec.
>
> Looking in the source code I analyzed the construction of the SCEV for a PHINode
> and during the analysis of the loop-invariant part of the increment the flags
> NSW/NUW are set according to the Operator BEValueV
> (ScalarEvoluton.cpp:3099-3113), but only Add and GEP operators are checked.
>
> //-------------------------------------------------------------------------//
> if (const AddOperator *OBO = dyn_cast<AddOperator>(BEValueV)) {
> if (OBO->hasNoUnsignedWrap())
> Flags =...
2013 Oct 02
1
[LLVMdev] ScalarEvolution::createNodeForPHI
...; propagated in the
> > AddRec.
> >
> > Looking in the source code I analyzed the construction of the SCEV
> > for a PHINode
> > and during the analysis of the loop-invariant part of the increment
> > the flags
> > NSW/NUW are set according to the Operator BEValueV
> > (ScalarEvoluton.cpp:3099-3113), but only Add and GEP operators are
> > checked.
> >
> > //-------------------------------------------------------------------------//
> > if (const AddOperator *OBO = dyn_cast<AddOperator>(BEValueV)) {
> > if (OBO->h...
2018 May 10
2
LLVM SCEV isAddRecNeverPoison and strength reduction
+CC llvm-dev
On Tue, May 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
2015 Jan 15
4
[LLVMdev] confusion w.r.t. scalar evolution and nuw
I've been doing some digging in this area (scev, wrapping arithmetic),
learning as much as I can, and have reached a point where I'm fairly
confused about the semantics of nuw in scalar evolution expressions.
Consider the following program:
define void @foo(i32 %begin) {
entry:
br label %loop
loop:
%idx = phi i32 [ %begin, %entry ], [ %idx.dec, %loop ]
%idx.dec = sub nuw i32