[DebugInfo][LSR] Emit shorter expressions from scev-based salvaging
authorChris Jackson <chris.jackson@sony.com>
Sun, 19 Sep 2021 14:52:20 +0000 (15:52 +0100)
committerChris Jackson <chris.jackson@sony.com>
Sun, 19 Sep 2021 20:41:44 +0000 (21:41 +0100)
commit5ba8020326a522c0dfa32f59a472fe20bee4908a
tree8c612910553f81550fbb29c485f05d650284f9a1
parent372e2c24b6e17bbff8fe6ed488cff5f7b7abd2b7
[DebugInfo][LSR] Emit shorter expressions from scev-based salvaging

The scev-based salvaging for LSR can sometimes produce unnecessarily
verbose expressions. This patch adds logic to detect when the value to
be recovered and the induction variable differ by only a constant
offset. Then, the expression to derive the current iteration count can
be omitted from the dbg.value in favour of the offset.

Reviewed by: aprantl

Differential Revision: https://reviews.llvm.org/D109044
llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll