aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/ADT/SmallVectorTest.cpp
diff options
context:
space:
mode:
authorMax Kazantsev <mkazantsev@azul.com>2022-08-03 13:10:56 +0700
committerMax Kazantsev <mkazantsev@azul.com>2022-08-03 14:08:57 +0700
commit34ae308c73e4d76dbdab25a6206d3fbc5ebafdf5 (patch)
tree905baf7d3cbe2e7de7aaa11e4778529fd4264090 /llvm/unittests/ADT/SmallVectorTest.cpp
parent817dd5e3fd6bdad584728843c72892f0fae058cd (diff)
downloadllvm-34ae308c73e4d76dbdab25a6206d3fbc5ebafdf5.zip
llvm-34ae308c73e4d76dbdab25a6206d3fbc5ebafdf5.tar.gz
llvm-34ae308c73e4d76dbdab25a6206d3fbc5ebafdf5.tar.bz2
[SCEV] Use context to strengthen flags of BinOps
Sometimes SCEV cannot infer nuw/nsw from something as simple as ``` len in [0, MAX_INT] ... iv = phi(0, iv.next) guard(iv <s len) guard(iv <u len) iv.next = iv + 1 ``` just because flag strenthening only relies on definition and does not use local facts. This patch adds support for the simplest case: inference of flags of `add(x, constant)` if we can contextually prove that `x <= max_int - constant`. In case if it has negative CT impact, we can add an option to switch it off. I woudln't expect that though. Differential Revision: https://reviews.llvm.org/D129643 Reviewed By: apilipenko
Diffstat (limited to 'llvm/unittests/ADT/SmallVectorTest.cpp')
0 files changed, 0 insertions, 0 deletions