[SCEV] Strength nowrap flags after constant folding
authorNikita Popov <nikita.ppv@gmail.com>
Sun, 25 Oct 2020 16:13:38 +0000 (17:13 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Sun, 25 Oct 2020 17:00:22 +0000 (18:00 +0100)
commit0dda6333175c1749f12be660456ecedade3bcf21
tree039b57ab9473906505098c64448e4811613c9b65
parentc5718253c9383bc02b384109743de30792c2b122
[SCEV] Strength nowrap flags after constant folding

We should first try to constant fold the add expression and only
strengthen nowrap flags afterwards. This allows us to determine
stronger flags if e.g. only two operands are left after constant
folding (and thus "guaranteed no wrap region" code applies) or the
resulting operands are non-negative and thus nsw->nuw strengthening
applies.
llvm/lib/Analysis/ScalarEvolution.cpp
llvm/test/Analysis/ScalarEvolution/ptrtoint-constantexpr-loop.ll
llvm/test/Analysis/ScalarEvolution/trip-count15.ll
llvm/test/Analysis/ScalarEvolution/trip-count9.ll
llvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
llvm/test/Transforms/IndVarSimplify/X86/pr35406.ll
llvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll
llvm/test/Transforms/LoopReroll/nonconst_lb.ll
llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll