From: David Blaikie Date: Mon, 2 Nov 2015 20:01:13 +0000 (+0000) Subject: StringRef-ify DiagnosticInfoSampleProfile::Filename X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=5c6a6f6ad5c30c14b26d38f7a22ce1999a9c1557;hp=a0fd526ce8022428904a025eb2e1b86cf27d22b6 StringRef-ify DiagnosticInfoSampleProfile::Filename git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@251823 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake index db0abb69d34..79135564a69 100644 --- a/cmake/modules/HandleLLVMOptions.cmake +++ b/cmake/modules/HandleLLVMOptions.cmake @@ -18,7 +18,7 @@ if(NOT LLVM_FORCE_USE_OLD_TOOLCHAIN) endif() elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1) - message(FATAL_ERROR "Host Clang version must be at least 3.1!") + # message(FATAL_ERROR "Host Clang version must be at least 3.1!") endif() if (CMAKE_CXX_SIMULATE_ID MATCHES "MSVC") diff --git a/include/llvm/IR/DiagnosticInfo.h b/include/llvm/IR/DiagnosticInfo.h index 8ed65c0dd39..aac7a4509f3 100644 --- a/include/llvm/IR/DiagnosticInfo.h +++ b/include/llvm/IR/DiagnosticInfo.h @@ -214,19 +214,18 @@ public: /// Diagnostic information for the sample profiler. class DiagnosticInfoSampleProfile : public DiagnosticInfo { public: - DiagnosticInfoSampleProfile(const char *FileName, unsigned LineNum, + DiagnosticInfoSampleProfile(StringRef FileName, unsigned LineNum, const Twine &Msg, DiagnosticSeverity Severity = DS_Error) : DiagnosticInfo(DK_SampleProfile, Severity), FileName(FileName), LineNum(LineNum), Msg(Msg) {} - DiagnosticInfoSampleProfile(const char *FileName, const Twine &Msg, + DiagnosticInfoSampleProfile(StringRef FileName, const Twine &Msg, DiagnosticSeverity Severity = DS_Error) : DiagnosticInfo(DK_SampleProfile, Severity), FileName(FileName), LineNum(0), Msg(Msg) {} DiagnosticInfoSampleProfile(const Twine &Msg, DiagnosticSeverity Severity = DS_Error) - : DiagnosticInfo(DK_SampleProfile, Severity), FileName(nullptr), - LineNum(0), Msg(Msg) {} + : DiagnosticInfo(DK_SampleProfile, Severity), LineNum(0), Msg(Msg) {} /// \see DiagnosticInfo::print. void print(DiagnosticPrinter &DP) const override; @@ -235,13 +234,13 @@ public: return DI->getKind() == DK_SampleProfile; } - const char *getFileName() const { return FileName; } + StringRef getFileName() const { return FileName; } unsigned getLineNum() const { return LineNum; } const Twine &getMsg() const { return Msg; } private: /// Name of the input file associated with this diagnostic. - const char *FileName; + StringRef FileName; /// Line number where the diagnostic occurred. If 0, no line number will /// be emitted in the message. diff --git a/lib/IR/DiagnosticInfo.cpp b/lib/IR/DiagnosticInfo.cpp index eab14e69eaa..4753789d9c1 100644 --- a/lib/IR/DiagnosticInfo.cpp +++ b/lib/IR/DiagnosticInfo.cpp @@ -123,10 +123,12 @@ void DiagnosticInfoDebugMetadataVersion::print(DiagnosticPrinter &DP) const { } void DiagnosticInfoSampleProfile::print(DiagnosticPrinter &DP) const { - if (getFileName() && getLineNum() > 0) - DP << getFileName() << ":" << getLineNum() << ": "; - else if (getFileName()) - DP << getFileName() << ": "; + if (!FileName.empty()) { + DP << getFileName(); + if (LineNum > 0) + DP << ":" << getLineNum(); + DP << ": "; + } DP << getMsg(); } diff --git a/lib/Transforms/IPO/SampleProfile.cpp b/lib/Transforms/IPO/SampleProfile.cpp index 7c01a8672fe..5979f022bc6 100644 --- a/lib/Transforms/IPO/SampleProfile.cpp +++ b/lib/Transforms/IPO/SampleProfile.cpp @@ -1009,9 +1009,8 @@ bool SampleProfileLoader::emitAnnotations(Function &F) { unsigned Total = CoverageTracker.countBodySamples(Samples); unsigned Coverage = CoverageTracker.computeCoverage(Used, Total); if (Coverage < SampleProfileCoverage) { - StringRef Filename = getDISubprogram(&F)->getFilename(); F.getContext().diagnose(DiagnosticInfoSampleProfile( - Filename.str().c_str(), getFunctionLoc(F), + getDISubprogram(&F)->getFilename(), getFunctionLoc(F), Twine(Used) + " of " + Twine(Total) + " available profile records (" + Twine(Coverage) + "%) were applied", DS_Warning)); @@ -1033,7 +1032,7 @@ bool SampleProfileLoader::doInitialization(Module &M) { auto ReaderOrErr = SampleProfileReader::create(Filename, Ctx); if (std::error_code EC = ReaderOrErr.getError()) { std::string Msg = "Could not open profile: " + EC.message(); - Ctx.diagnose(DiagnosticInfoSampleProfile(Filename.data(), Msg)); + Ctx.diagnose(DiagnosticInfoSampleProfile(Filename, Msg)); return false; } Reader = std::move(ReaderOrErr.get());