diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2018-11-30 15:14:20 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2018-11-30 15:14:20 +0000 |
commit | 3689747619a6eba93d8e051e0fec2b75612eef3a (patch) | |
tree | bb8db448111a698ef8cf7daf47c85f4ee70bce52 /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | |
parent | 7213cd14f59c5a9f474cb1a379905192b2d1ea7b (diff) | |
download | bcm5719-llvm-3689747619a6eba93d8e051e0fec2b75612eef3a.tar.gz bcm5719-llvm-3689747619a6eba93d8e051e0fec2b75612eef3a.zip |
[SLP]PR39774: Update references of the replaced external instructions.
Summary:
An additional fix for PR39774. Need to update the references for the
RedcutionRoot instruction when it is replaced during the vectorization
phase to avoid compiler crash on reduction vectorization.
Reviewers: RKSimon, spatel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D55017
llvm-svn: 347997
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index a1c642e7344..87a861970d1 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -3643,6 +3643,8 @@ BoUpSLP::vectorizeTree(ExtraValueToDebugLocsMap &ExternallyUsedValues) { auto &Locs = ExternallyUsedValues[Scalar]; ExternallyUsedValues.insert({Ex, Locs}); ExternallyUsedValues.erase(Scalar); + // Required to update internally referenced instructions. + Scalar->replaceAllUsesWith(Ex); continue; } |