Teach ScalarEvolution how to reason about no-wrap flags on loops
commitc20e8bfb90176ee9cd27b027c11a3c8c9c117dd6
authorDan Gohman <gohman@apple.com>
Thu, 17 Sep 2009 18:05:20 +0000 (17 18:05 +0000)
committerDan Gohman <gohman@apple.com>
Thu, 17 Sep 2009 18:05:20 +0000 (17 18:05 +0000)
tree0d7e9d9548abac5b768f7bc42fabb8da8d8f0a96
parent47472be0fc842626bbc7103ca8c2d724c213d67e
Teach ScalarEvolution how to reason about no-wrap flags on loops
where the induction variable has a non-unit stride, such as {0,+,2}, and
there are expressions such as {1,+,2} inside the loop formed with
or or add nsw operators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82151 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/ScalarEvolution.h
lib/Analysis/ScalarEvolution.cpp
test/Analysis/ScalarEvolution/nsw-offset.ll [new file with mode: 0644]