diff options
author | Adam Nemet <anemet@apple.com> | 2015-06-26 17:25:43 +0000 |
---|---|---|
committer | Adam Nemet <anemet@apple.com> | 2015-06-26 17:25:43 +0000 |
commit | c4866d29dd74336d4a7d09fd7b2ee730214d4dad (patch) | |
tree | 8391bede2bea24b113f40087efaca7efcd2b15d5 /llvm/lib/MC/MCSymbol.cpp | |
parent | ec6b26b955a7a5c2d41bf65396a14a5531ac3638 (diff) | |
download | bcm5719-llvm-c4866d29dd74336d4a7d09fd7b2ee730214d4dad.tar.gz bcm5719-llvm-c4866d29dd74336d4a7d09fd7b2ee730214d4dad.zip |
[LAA] Try to prove non-wrapping of pointers if SCEV cannot
Summary:
Scalar evolution does not propagate the non-wrapping flags to values
that are derived from a non-wrapping induction variable because
the non-wrapping property could be flow-sensitive.
This change is a first attempt to establish the non-wrapping property in
some simple cases. The main idea is to look through the operations
defining the pointer. As long as we arrive to a non-wrapping AddRec via
a small chain of non-wrapping instruction, the pointer should not wrap
either.
I believe that this essentially is what Andy described in
http://article.gmane.org/gmane.comp.compilers.llvm.cvs/220731 as the way
forward.
Reviewers: aschwaighofer, nadav, sanjoy, atrick
Reviewed By: atrick
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D10472
llvm-svn: 240798
Diffstat (limited to 'llvm/lib/MC/MCSymbol.cpp')
0 files changed, 0 insertions, 0 deletions