summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2018-11-30 15:14:20 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2018-11-30 15:14:20 +0000
commit3689747619a6eba93d8e051e0fec2b75612eef3a (patch)
treebb8db448111a698ef8cf7daf47c85f4ee70bce52 /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
parent7213cd14f59c5a9f474cb1a379905192b2d1ea7b (diff)
downloadbcm5719-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.cpp2
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;
}
OpenPOWER on IntegriCloud