Without this, pointer IVs in loops with small constant trip counts couldn't be proven no-self-wrap. This came up in a new LSR transform, but may also benefit other SCEV consumers as well.
Details
Details
Diff Detail
Diff Detail
Unit Tests
Unit Tests
Event Timeline
llvm/test/Transforms/LoopVersioning/lcssa.ll | ||
---|---|---|
59 | FYI, this gep is unused in the code before the change. No idea why the SCEV change causes the pause to realize it's dead, nor do I really care. |
llvm/lib/Analysis/ScalarEvolution.cpp | ||
---|---|---|
4995 | I think it would make more sense to use the constant max BECount here, rather than the range of the exact BECount. That should be strictly more powerful and is also more in line with how we infer nuw/nsw on affine addrecs. |
I think it would make more sense to use the constant max BECount here, rather than the range of the exact BECount. That should be strictly more powerful and is also more in line with how we infer nuw/nsw on affine addrecs.