From 3e87634fd835cc809c19c5313c208b8e87bdf8a0 Mon Sep 17 00:00:00 2001 From: Adam Nemet Date: Thu, 19 Feb 2015 19:15:13 +0000 Subject: [PATCH] [LoopAccesses] Add missing const to APIs in VectorizationReport When I split out LoopAccessReport from this, I need to create some temps so constness becomes necessary. This is part of the patchset that converts LoopAccessAnalysis into an actual analysis pass. llvm-svn: 229896 --- llvm/include/llvm/Analysis/LoopAccessAnalysis.h | 9 +++++---- llvm/lib/Analysis/LoopAccessAnalysis.cpp | 4 ++-- llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/llvm/include/llvm/Analysis/LoopAccessAnalysis.h b/llvm/include/llvm/Analysis/LoopAccessAnalysis.h index 936783e53b02..91b572b6ae6d 100644 --- a/llvm/include/llvm/Analysis/LoopAccessAnalysis.h +++ b/llvm/include/llvm/Analysis/LoopAccessAnalysis.h @@ -38,10 +38,10 @@ class SCEV; /// the user why vectorization did not occur. class VectorizationReport { std::string Message; - Instruction *Instr; + const Instruction *Instr; public: - VectorizationReport(Instruction *I = nullptr) + VectorizationReport(const Instruction *I = nullptr) : Message("loop not vectorized: "), Instr(I) {} template VectorizationReport &operator<<(const A &Value) { @@ -50,15 +50,16 @@ public: return *this; } - Instruction *getInstr() { return Instr; } + const Instruction *getInstr() const { return Instr; } std::string &str() { return Message; } + const std::string &str() const { return Message; } operator Twine() { return Message; } /// \brief Emit an analysis note for \p PassName with the debug location from /// the instruction in \p Message if available. Otherwise use the location of /// \p TheLoop. - static void emitAnalysis(VectorizationReport &Message, + static void emitAnalysis(const VectorizationReport &Message, const Function *TheFunction, const Loop *TheLoop, const char *PassName); diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp index 40b70ef30d47..8588e611bc8f 100644 --- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp +++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp @@ -50,12 +50,12 @@ bool VectorizerParams::isInterleaveForced() { return ::VectorizationInterleave.getNumOccurrences() > 0; } -void VectorizationReport::emitAnalysis(VectorizationReport &Message, +void VectorizationReport::emitAnalysis(const VectorizationReport &Message, const Function *TheFunction, const Loop *TheLoop, const char *PassName) { DebugLoc DL = TheLoop->getStartLoc(); - if (Instruction *I = Message.getInstr()) + if (const Instruction *I = Message.getInstr()) DL = I->getDebugLoc(); emitOptimizationRemarkAnalysis(TheFunction->getContext(), PassName, *TheFunction, DL, Message.str()); diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index 9ced65f13e17..e39375fa9296 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -815,7 +815,7 @@ private: /// Report an analysis message to assist the user in diagnosing loops that are /// not vectorized. - void emitAnalysis(VectorizationReport &Message) { + void emitAnalysis(const VectorizationReport &Message) { VectorizationReport::emitAnalysis(Message, TheFunction, TheLoop, LV_NAME); } @@ -952,7 +952,7 @@ private: /// Report an analysis message to assist the user in diagnosing loops that are /// not vectorized. - void emitAnalysis(VectorizationReport &Message) { + void emitAnalysis(const VectorizationReport &Message) { VectorizationReport::emitAnalysis(Message, TheFunction, TheLoop, LV_NAME); }