diff options
-rw-r--r-- | llvm/include/llvm/IR/DiagnosticInfo.h | 5 | ||||
-rw-r--r-- | llvm/lib/IR/DiagnosticInfo.cpp | 7 | ||||
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp | 3 |
3 files changed, 14 insertions, 1 deletions
diff --git a/llvm/include/llvm/IR/DiagnosticInfo.h b/llvm/include/llvm/IR/DiagnosticInfo.h index 05043e7d06e..d179f48f44e 100644 --- a/llvm/include/llvm/IR/DiagnosticInfo.h +++ b/llvm/include/llvm/IR/DiagnosticInfo.h @@ -524,6 +524,11 @@ public: OptimizationRemark(const char *PassName, StringRef RemarkName, const DebugLoc &DLoc, Value *CodeRegion); + /// Same as above but the debug location and code region is derived from \p + /// Instr. + OptimizationRemark(const char *PassName, StringRef RemarkName, + Instruction *Inst); + static bool classof(const DiagnosticInfo *DI) { return DI->getKind() == DK_OptimizationRemark; } diff --git a/llvm/lib/IR/DiagnosticInfo.cpp b/llvm/lib/IR/DiagnosticInfo.cpp index 8e15014349e..e9187a9ce63 100644 --- a/llvm/lib/IR/DiagnosticInfo.cpp +++ b/llvm/lib/IR/DiagnosticInfo.cpp @@ -190,6 +190,13 @@ OptimizationRemark::OptimizationRemark(const char *PassName, DK_OptimizationRemark, DS_Remark, PassName, RemarkName, *cast<BasicBlock>(CodeRegion)->getParent(), DLoc, CodeRegion) {} +OptimizationRemark::OptimizationRemark(const char *PassName, + StringRef RemarkName, Instruction *Inst) + : DiagnosticInfoOptimizationBase(DK_OptimizationRemark, DS_Remark, PassName, + RemarkName, + *Inst->getParent()->getParent(), + Inst->getDebugLoc(), Inst->getParent()) {} + bool OptimizationRemark::isEnabled() const { return PassRemarksOptLoc.Pattern && PassRemarksOptLoc.Pattern->match(getPassName()); diff --git a/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp b/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp index 71eb37e2ae1..d09af32a99f 100644 --- a/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp +++ b/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp @@ -329,7 +329,8 @@ bool LoopDataPrefetch::runOnLoop(Loop *L) { ++NumPrefetches; DEBUG(dbgs() << " Access: " << *PtrValue << ", SCEV: " << *LSCEV << "\n"); - ORE->emitOptimizationRemark(DEBUG_TYPE, MemI, "prefetched memory access"); + ORE->emit(OptimizationRemark(DEBUG_TYPE, "Prefetched", MemI) + << "prefetched memory access"); MadeChange = true; } |