diff options
author | Chris Lattner <sabre@nondot.org> | 2011-02-11 21:43:33 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2011-02-11 21:43:33 +0000 |
commit | 1021236c74dcc4beb294ebe675032ff578fae17f (patch) | |
tree | 6fe1febbbc8777bab6c85784114827eda272ef29 /test | |
parent | 6aa68a76474525255943bee914e37b68a3ba75c8 (diff) | |
download | external_llvm-1021236c74dcc4beb294ebe675032ff578fae17f.zip external_llvm-1021236c74dcc4beb294ebe675032ff578fae17f.tar.gz external_llvm-1021236c74dcc4beb294ebe675032ff578fae17f.tar.bz2 |
Per discussion with Dan G, inbounds geps *certainly* can have
unsigned overflow (e.g. "gep P, -1"), and while they can have
signed wrap in theoretical situations, modelling an AddRec as
not having signed wrap is going enough for any case we can
think of today. In the future if this isn't enough, we can
revisit this. Modeling them as having NUW isn't causing any
known problems either FWIW.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125410 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Analysis/ScalarEvolution/nsw.ll | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/test/Analysis/ScalarEvolution/nsw.ll b/test/Analysis/ScalarEvolution/nsw.ll index 530ed39..010cf60 100644 --- a/test/Analysis/ScalarEvolution/nsw.ll +++ b/test/Analysis/ScalarEvolution/nsw.ll @@ -62,11 +62,11 @@ for.body.lr.ph.i.i: ; preds = %entry for.body.i.i: ; preds = %for.body.i.i, %for.body.lr.ph.i.i %__first.addr.02.i.i = phi i32* [ %begin, %for.body.lr.ph.i.i ], [ %ptrincdec.i.i, %for.body.i.i ] ; CHECK: %__first.addr.02.i.i -; CHECK-NEXT: --> {%begin,+,4}<nuw><%for.body.i.i> +; CHECK-NEXT: --> {%begin,+,4}<nsw><%for.body.i.i> store i32 0, i32* %__first.addr.02.i.i, align 4 %ptrincdec.i.i = getelementptr inbounds i32* %__first.addr.02.i.i, i64 1 ; CHECK: %ptrincdec.i.i -; CHECK-NEXT: --> {(4 + %begin),+,4}<nuw><%for.body.i.i> +; CHECK-NEXT: --> {(4 + %begin),+,4}<nsw><%for.body.i.i> %cmp.i.i = icmp eq i32* %ptrincdec.i.i, %end br i1 %cmp.i.i, label %for.cond.for.end_crit_edge.i.i, label %for.body.i.i |