summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2015-10-16 01:00:47 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2015-10-16 01:00:47 +0000
commit37e87c2023821ded5c35096d794bbb55c9cc5899 (patch)
treedea4ff599d2a428ec335eb4948a800cbe3d5ca8b /llvm/lib/Transforms/Utils
parent472840a3d38cb4f2f2c4d59618e9fd7a6adcc9eb (diff)
downloadbcm5719-llvm-37e87c2023821ded5c35096d794bbb55c9cc5899.tar.gz
bcm5719-llvm-37e87c2023821ded5c35096d794bbb55c9cc5899.zip
[IndVars] Have `cloneArithmeticIVUser` guess better
Summary: `cloneArithmeticIVUser` currently trips over expression like `add %iv, -1` when `%iv` is being zero extended -- it tries to construct the widened use as `add %iv.zext, zext(-1)` and (correctly) fails to prove equivalence to `zext(add %iv, -1)` (here the SCEV for `%iv` is `{1,+,1}`). This change teaches `IndVars` to try sign extending the non-IV operand if that makes the newly constructed IV use equivalent to the widened narrow IV use. Reviewers: atrick, hfinkel, reames Subscribers: sanjoy, llvm-commits Differential Revision: http://reviews.llvm.org/D13717 llvm-svn: 250483
Diffstat (limited to 'llvm/lib/Transforms/Utils')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud