summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
diff options
context:
space:
mode:
authorAnna Thomas <anna@azul.com>2018-09-25 20:57:20 +0000
committerAnna Thomas <anna@azul.com>2018-09-25 20:57:20 +0000
commitb1e3d4531826e6134b05e8ff3c96a5696a72ad50 (patch)
treea9176db686066adc9afee51427604eaf8b78aaaa /llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
parentc81aff79d3ae0e81b3183e3f077627ea569ad4fc (diff)
downloadbcm5719-llvm-b1e3d4531826e6134b05e8ff3c96a5696a72ad50.tar.gz
bcm5719-llvm-b1e3d4531826e6134b05e8ff3c96a5696a72ad50.zip
[LV][LAA] Vectorize loop invariant values stored into loop invariant address
Summary: We are overly conservative in loop vectorizer with respect to stores to loop invariant addresses. More details in https://bugs.llvm.org/show_bug.cgi?id=38546 This is the first part of the fix where we start with vectorizing loop invariant values to loop invariant addresses. This also includes changes to ORE for stores to invariant address. Reviewers: anemet, Ayal, mkuper, mssimpso Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D50665 llvm-svn: 343028
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp')
-rw-r--r--llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
index 9c81cdc9083..7e11504c0e0 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
@@ -817,9 +817,10 @@ bool LoopVectorizationLegality::canVectorizeMemory() {
if (!LAI->canVectorizeMemory())
return false;
- if (LAI->hasStoreToLoopInvariantAddress()) {
+ if (LAI->hasVariantStoreToLoopInvariantAddress()) {
ORE->emit(createMissedAnalysis("CantVectorizeStoreToLoopInvariantAddress")
- << "write to a loop invariant address could not be vectorized");
+ << "write of variant value to a loop invariant address could not "
+ "be vectorized");
LLVM_DEBUG(dbgs() << "LV: We don't allow storing to uniform addresses\n");
return false;
}
OpenPOWER on IntegriCloud