[LSR] Fix signed overflow in GenerateCrossUseConstantOffsets.
authorFlorian Hahn <flo@fhahn.com>
Thu, 28 Mar 2019 22:17:29 +0000 (22:17 +0000)
committerFlorian Hahn <flo@fhahn.com>
Thu, 28 Mar 2019 22:17:29 +0000 (22:17 +0000)
commit45682fd6332c07f03608d6609836f7107f6a5a44
tree1c698fcad8f37a3bd881eace19de050b8d81e5e0
parent45bd9b2567dbcc65ca233a3a88928ddb76b65156
[LSR] Fix signed overflow in GenerateCrossUseConstantOffsets.

For the attached test case, unchecked addition of immediate starts and
ends overflows, as they can be arbitrary i64 constants.

Proof: https://rise4fun.com/Alive/Plqc

Reviewers: qcolombet, gilr, efriedma

Reviewed By: efriedma

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

llvm-svn: 357217
llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
llvm/test/Transforms/LoopStrengthReduce/lsr-overflow.ll [new file with mode: 0644]