summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Analysis/LoopAccessAnalysis.cpp3
-rw-r--r--llvm/lib/Transforms/Vectorize/LoopVectorize.cpp8
2 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
index 9ac27ddb46f..927ae494548 100644
--- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp
+++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
@@ -1077,7 +1077,8 @@ bool LoopAccessInfo::blockNeedsPredication(BasicBlock *BB) {
}
void LoopAccessInfo::emitAnalysis(VectorizationReport &Message) {
- VectorizationReport::emitAnalysis(Message, TheFunction, TheLoop);
+ assert(!Report && "Multiple report generated");
+ Report = Message;
}
bool LoopAccessInfo::isUniform(Value *V) {
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index 3f6660203c0..abb38d19ea1 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -556,7 +556,7 @@ public:
: NumPredStores(0), TheLoop(L), SE(SE), DL(DL),
TLI(TLI), TheFunction(F), TTI(TTI), Induction(nullptr),
WidestIndTy(nullptr),
- LAI(F, L, SE, DL, TLI, AA, DT),
+ LAI(L, SE, DL, TLI, AA, DT),
HasFunNoNaNAttr(false) {}
/// This enum represents the kinds of reductions that we support.
@@ -3825,7 +3825,11 @@ void LoopVectorizationLegality::collectLoopUniforms() {
}
bool LoopVectorizationLegality::canVectorizeMemory() {
- return LAI.canVectorizeMemory(Strides);
+ bool Success = LAI.canVectorizeMemory(Strides);
+ auto &OptionalReport = LAI.getReport();
+ if (OptionalReport)
+ emitAnalysis(*OptionalReport);
+ return Success;
}
static bool hasMultipleUsesOf(Instruction *I,
OpenPOWER on IntegriCloud