search for: howfartozero

Displaying 6 results from an estimated 6 matches for "howfartozero".

2019 Aug 25
2
SCEV related question
Hello, I am first time paying with SCEV codebase. I am trying to find out why ScalarEvolution is not able to give correct back edge taken count for an expression. So in my case flow reaches to howFarToZero() and in that function, I have following expressions as SCEV Start = (15 + (-1 * %i) (which is set to Distance SCEV) Step = 1 now, first of all, should I expect Start as ConstantSCEV (15) instead of the whole expression the problem here is getUnsignedRangeMax(Distance) returns very large number b...
2019 Aug 26
2
SCEV related question
...ev at lists.llvm.org> wrote: > > > > Hello, > > > > I am first time paying with SCEV codebase. > > I am trying to find out why ScalarEvolution is not able to give correct > back edge taken count for an expression. > > > > So in my case flow reaches to howFarToZero() and in that function, I > have following expressions as SCEV > > > > Start = (15 + (-1 * %i) (which is set to Distance SCEV) > > Step = 1 > > > > now, first of all, should I expect Start as ConstantSCEV (15) instead of > the whole expression > > the probl...
2018 Aug 15
2
[SCEV] Why is backedge-taken count <nsw> instead of <nuw>?
...e to fix that issue. > > > The backedge-taken count isn't nuw because nsw/nuw markings aren't > flow-sensitive: there isn't any way to mark the trip count as nuw without > marking every computation of `(long)n-2` as nuw. > > There's some code in ScalarEvolution::howFarToZero to try to refine the > max backedge-taken count in some cases, but it isn't very general. See > https://reviews.llvm.org/D28536 . > > -Eli > > -- > Employee of Qualcomm Innovation Center, Inc. > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux...
2018 Aug 15
2
[SCEV] Why is backedge-taken count <nsw> instead of <nuw>?
Hello, If I run clang on the following code: void func(unsigned n) { > for (unsigned long x = 1; x < n; ++x) > dummy(x); > } I get the following llvm ir: define void @func(i32 %n) { > entry: > %conv = zext i32 %n to i64 > %cmp5 = icmp ugt i32 %n, 1 > br i1 %cmp5, label %for.body, label %for.cond.cleanup > for.cond.cleanup:
2018 Aug 15
2
[SCEV] Why is backedge-taken count <nsw> instead of <nuw>?
...; >> >> The backedge-taken count isn't nuw because nsw/nuw markings aren't >> flow-sensitive: there isn't any way to mark the trip count as nuw without >> marking every computation of `(long)n-2` as nuw. >> >> There's some code in ScalarEvolution::howFarToZero to try to refine the >> max backedge-taken count in some cases, but it isn't very general. See >> https://reviews.llvm.org/D28536 . >> >> -Eli >> >> -- >> Employee of Qualcomm Innovation Center, Inc. >> Qualcomm Innovation Center, Inc. is a membe...
2018 Aug 16
3
[SCEV] Why is backedge-taken count <nsw> instead of <nuw>?
...gt; The backedge-taken count isn't nuw because nsw/nuw markings aren't >>> flow-sensitive: there isn't any way to mark the trip count as nuw without >>> marking every computation of `(long)n-2` as nuw. >>> >>> There's some code in ScalarEvolution::howFarToZero to try to refine the >>> max backedge-taken count in some cases, but it isn't very general. See >>> https://reviews.llvm.org/D28536 . >>> >>> -Eli >>> >>> -- >>> Employee of Qualcomm Innovation Center, Inc. >>> Qualcomm In...