search for: bevaluev

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