[SimplifyIndVar] Simplify non-overflowing saturating add/sub
authorNikita Popov <nikita.ppv@gmail.com>
Sat, 15 Jun 2019 08:48:52 +0000 (08:48 +0000)
committerNikita Popov <nikita.ppv@gmail.com>
Sat, 15 Jun 2019 08:48:52 +0000 (08:48 +0000)
commit9145562b4879b34ae5c21af27be4162484f9602e
treef44fecaca2192446e34cccb8ac99c9f36c703e79
parent0bb4d46b2be5edd58621416de72e995cd6dd7ec4
[SimplifyIndVar] Simplify non-overflowing saturating add/sub

If we can detect that saturating math that depends on an IV cannot
overflow, replace it with simple math. This is similar to the CVP
optimization from D62703, just based on a different underlying
analysis (SCEV vs LVI) that catches different cases.

Differential Revision: https://reviews.llvm.org/D62792

llvm-svn: 363489
llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
llvm/test/Transforms/IndVarSimplify/eliminate-sat.ll