diff --git a/include/llvm/Bitcode/ReaderWriter.h b/include/llvm/Bitcode/ReaderWriter.h index 0f0c63bd0e6..2913f877cd6 100644 --- a/include/llvm/Bitcode/ReaderWriter.h +++ b/include/llvm/Bitcode/ReaderWriter.h @@ -71,13 +71,14 @@ namespace llvm { LLVMContext &Context); /// Check if the given bitcode buffer contains a summary block. - bool hasGlobalValueSummary(MemoryBufferRef Buffer, - DiagnosticHandlerFunction DiagnosticHandler); + bool + hasGlobalValueSummary(MemoryBufferRef Buffer, + const DiagnosticHandlerFunction &DiagnosticHandler); /// Parse the specified bitcode buffer, returning the module summary index. ErrorOr> getModuleSummaryIndex(MemoryBufferRef Buffer, - DiagnosticHandlerFunction DiagnosticHandler); + const DiagnosticHandlerFunction &DiagnosticHandler); /// \brief Write the specified module to the specified raw output stream. /// diff --git a/include/llvm/CodeGen/DIE.h b/include/llvm/CodeGen/DIE.h index d30ebbd4fdb..7d6e66fa6ec 100644 --- a/include/llvm/CodeGen/DIE.h +++ b/include/llvm/CodeGen/DIE.h @@ -565,7 +565,7 @@ public: typedef iterator_range value_range; typedef iterator_range const_value_range; - value_iterator addValue(BumpPtrAllocator &Alloc, DIEValue V) { + value_iterator addValue(BumpPtrAllocator &Alloc, const DIEValue &V) { List.push_back(*new (Alloc) Node(V)); return value_iterator(ListTy::toIterator(List.back())); } diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h index f83229e5f31..aad5d6fde17 100644 --- a/include/llvm/CodeGen/SelectionDAG.h +++ b/include/llvm/CodeGen/SelectionDAG.h @@ -1382,7 +1382,7 @@ private: void *&InsertPos); SDNode *FindModifiedNodeSlot(SDNode *N, ArrayRef Ops, void *&InsertPos); - SDNode *UpdadeSDLocOnMergedSDNode(SDNode *N, SDLoc loc); + SDNode *UpdadeSDLocOnMergedSDNode(SDNode *N, const SDLoc &loc); void DeleteNodeNotInCSEMaps(SDNode *N); void DeallocateNode(SDNode *N); diff --git a/include/llvm/ExecutionEngine/ExecutionEngine.h b/include/llvm/ExecutionEngine/ExecutionEngine.h index caeed7ea9da..9518e5ad37d 100644 --- a/include/llvm/ExecutionEngine/ExecutionEngine.h +++ b/include/llvm/ExecutionEngine/ExecutionEngine.h @@ -478,11 +478,11 @@ public: /// specified function pointer is invoked to create it. If it returns null, /// the JIT will abort. void InstallLazyFunctionCreator(FunctionCreator C) { - LazyFunctionCreator = C; + LazyFunctionCreator = std::move(C); } protected: - ExecutionEngine(const DataLayout DL) : DL(std::move(DL)){} + ExecutionEngine(DataLayout DL) : DL(std::move(DL)) {} explicit ExecutionEngine(DataLayout DL, std::unique_ptr M); explicit ExecutionEngine(std::unique_ptr M); diff --git a/include/llvm/Object/ModuleSummaryIndexObjectFile.h b/include/llvm/Object/ModuleSummaryIndexObjectFile.h index 3a3333cd033..d021fb29427 100644 --- a/include/llvm/Object/ModuleSummaryIndexObjectFile.h +++ b/include/llvm/Object/ModuleSummaryIndexObjectFile.h @@ -81,23 +81,23 @@ public: /// \brief Looks for summary sections in the given memory buffer, /// returns true if found, else false. - static bool - hasGlobalValueSummaryInMemBuffer(MemoryBufferRef Object, - DiagnosticHandlerFunction DiagnosticHandler); + static bool hasGlobalValueSummaryInMemBuffer( + MemoryBufferRef Object, + const DiagnosticHandlerFunction &DiagnosticHandler); /// \brief Parse module summary index in the given memory buffer. /// Return new ModuleSummaryIndexObjectFile instance containing parsed module /// summary/index. static ErrorOr> - create(MemoryBufferRef Object, DiagnosticHandlerFunction DiagnosticHandler); + create(MemoryBufferRef Object, + const DiagnosticHandlerFunction &DiagnosticHandler); }; } /// Parse the module summary index out of an IR file and return the module /// summary index object if found, or nullptr if not. -ErrorOr> -getModuleSummaryIndexForFile(StringRef Path, - DiagnosticHandlerFunction DiagnosticHandler); +ErrorOr> getModuleSummaryIndexForFile( + StringRef Path, const DiagnosticHandlerFunction &DiagnosticHandler); } #endif diff --git a/include/llvm/Support/Printable.h b/include/llvm/Support/Printable.h index 016499ea2a3..83b8f0998ae 100644 --- a/include/llvm/Support/Printable.h +++ b/include/llvm/Support/Printable.h @@ -38,7 +38,7 @@ class raw_ostream; class Printable { public: std::function Print; - Printable(const std::function Print) + Printable(std::function Print) : Print(std::move(Print)) {} }; diff --git a/include/llvm/Transforms/IPO/Internalize.h b/include/llvm/Transforms/IPO/Internalize.h index 604c8b300ca..ba1b06877d3 100644 --- a/include/llvm/Transforms/IPO/Internalize.h +++ b/include/llvm/Transforms/IPO/Internalize.h @@ -53,8 +53,7 @@ class InternalizePass : public PassInfoMixin { public: InternalizePass(); - InternalizePass( - const std::function MustPreserveGV) + InternalizePass(std::function MustPreserveGV) : MustPreserveGV(std::move(MustPreserveGV)) {} /// Run the internalizer on \p TheModule, returns true if any changes was @@ -68,10 +67,10 @@ public: }; /// Helper function to internalize functions and variables in a Module. -inline bool internalizeModule( - Module &TheModule, - const std::function MustPreserveGV, - CallGraph *CG = nullptr) { +inline bool +internalizeModule(Module &TheModule, + std::function MustPreserveGV, + CallGraph *CG = nullptr) { return InternalizePass(std::move(MustPreserveGV)) .internalizeModule(TheModule, CG); } diff --git a/lib/Bitcode/Reader/BitcodeReader.cpp b/lib/Bitcode/Reader/BitcodeReader.cpp index ac72f69c76e..ac534f35bb4 100644 --- a/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/lib/Bitcode/Reader/BitcodeReader.cpp @@ -552,14 +552,14 @@ BitcodeDiagnosticInfo::BitcodeDiagnosticInfo(std::error_code EC, void BitcodeDiagnosticInfo::print(DiagnosticPrinter &DP) const { DP << Msg; } -static std::error_code error(DiagnosticHandlerFunction DiagnosticHandler, +static std::error_code error(const DiagnosticHandlerFunction &DiagnosticHandler, std::error_code EC, const Twine &Message) { BitcodeDiagnosticInfo DI(EC, DS_Error, Message); DiagnosticHandler(DI); return EC; } -static std::error_code error(DiagnosticHandlerFunction DiagnosticHandler, +static std::error_code error(const DiagnosticHandlerFunction &DiagnosticHandler, std::error_code EC) { return error(DiagnosticHandler, EC, EC.message()); } @@ -6555,9 +6555,9 @@ std::string llvm::getBitcodeProducerString(MemoryBufferRef Buffer, } // Parse the specified bitcode buffer, returning the function info index. -ErrorOr> -llvm::getModuleSummaryIndex(MemoryBufferRef Buffer, - DiagnosticHandlerFunction DiagnosticHandler) { +ErrorOr> llvm::getModuleSummaryIndex( + MemoryBufferRef Buffer, + const DiagnosticHandlerFunction &DiagnosticHandler) { std::unique_ptr Buf = MemoryBuffer::getMemBuffer(Buffer, false); ModuleSummaryIndexBitcodeReader R(Buf.get(), DiagnosticHandler); @@ -6576,8 +6576,9 @@ llvm::getModuleSummaryIndex(MemoryBufferRef Buffer, } // Check if the given bitcode buffer contains a global value summary block. -bool llvm::hasGlobalValueSummary(MemoryBufferRef Buffer, - DiagnosticHandlerFunction DiagnosticHandler) { +bool llvm::hasGlobalValueSummary( + MemoryBufferRef Buffer, + const DiagnosticHandlerFunction &DiagnosticHandler) { std::unique_ptr Buf = MemoryBuffer::getMemBuffer(Buffer, false); ModuleSummaryIndexBitcodeReader R(Buf.get(), DiagnosticHandler, true); diff --git a/lib/CodeGen/AsmPrinter/DIEHash.cpp b/lib/CodeGen/AsmPrinter/DIEHash.cpp index 91684c2681c..74c47d151c6 100644 --- a/lib/CodeGen/AsmPrinter/DIEHash.cpp +++ b/lib/CodeGen/AsmPrinter/DIEHash.cpp @@ -279,7 +279,7 @@ void DIEHash::hashLocList(const DIELocList &LocList) { // Hash an individual attribute \param Attr based on the type of attribute and // the form. -void DIEHash::hashAttribute(DIEValue Value, dwarf::Tag Tag) { +void DIEHash::hashAttribute(const DIEValue &Value, dwarf::Tag Tag) { dwarf::Attribute Attribute = Value.getAttribute(); // Other attribute values use the letter 'A' as the marker, and the value diff --git a/lib/CodeGen/AsmPrinter/DIEHash.h b/lib/CodeGen/AsmPrinter/DIEHash.h index 44f0ce88523..996cd7ef3d2 100644 --- a/lib/CodeGen/AsmPrinter/DIEHash.h +++ b/lib/CodeGen/AsmPrinter/DIEHash.h @@ -131,7 +131,7 @@ private: void hashLocList(const DIELocList &LocList); /// \brief Hashes an individual attribute. - void hashAttribute(DIEValue Value, dwarf::Tag Tag); + void hashAttribute(const DIEValue &Value, dwarf::Tag Tag); /// \brief Hashes an attribute that refers to another DIE. void hashDIEEntry(dwarf::Attribute Attribute, dwarf::Tag Tag, diff --git a/lib/CodeGen/ParallelCG.cpp b/lib/CodeGen/ParallelCG.cpp index 96a0f64794b..ccdaec1bc18 100644 --- a/lib/CodeGen/ParallelCG.cpp +++ b/lib/CodeGen/ParallelCG.cpp @@ -25,10 +25,9 @@ using namespace llvm; -static void -codegen(Module *M, llvm::raw_pwrite_stream &OS, - std::function()> TMFactory, - TargetMachine::CodeGenFileType FileType) { +static void codegen(Module *M, llvm::raw_pwrite_stream &OS, + function_ref()> TMFactory, + TargetMachine::CodeGenFileType FileType) { std::unique_ptr TM = TMFactory(); legacy::PassManager CodeGenPasses; if (TM->addPassesToEmitFile(CodeGenPasses, OS, FileType)) diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 9e6f1158156..5f288508cf4 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -5977,7 +5977,7 @@ SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc, /// probability having other instructions associated with that line. /// /// For IROrder, we keep the smaller of the two -SDNode *SelectionDAG::UpdadeSDLocOnMergedSDNode(SDNode *N, SDLoc OLoc) { +SDNode *SelectionDAG::UpdadeSDLocOnMergedSDNode(SDNode *N, const SDLoc &OLoc) { DebugLoc NLoc = N->getDebugLoc(); if (NLoc && OptLevel == CodeGenOpt::None && OLoc.getDebugLoc() != NLoc) { N->setDebugLoc(DebugLoc()); diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp index d477918284e..090b9a3857e 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp @@ -584,7 +584,7 @@ private: // Returns a pair containing the result of the slice operation, plus the // expression remaining to be parsed. std::pair - evalSliceExpr(std::pair Ctx) const { + evalSliceExpr(const std::pair &Ctx) const { EvalResult SubExprResult; StringRef RemainingExpr; std::tie(SubExprResult, RemainingExpr) = Ctx; @@ -628,7 +628,7 @@ private: // Returns a pair containing the ultimate result of evaluating the // expression, plus the expression remaining to be evaluated. std::pair - evalComplexExpr(std::pair LHSAndRemaining, + evalComplexExpr(const std::pair &LHSAndRemaining, ParseContext PCtx) const { EvalResult LHSResult; StringRef RemainingExpr; diff --git a/lib/Object/ModuleSummaryIndexObjectFile.cpp b/lib/Object/ModuleSummaryIndexObjectFile.cpp index 4af232b89f3..e6b1040d8f5 100644 --- a/lib/Object/ModuleSummaryIndexObjectFile.cpp +++ b/lib/Object/ModuleSummaryIndexObjectFile.cpp @@ -70,7 +70,8 @@ ModuleSummaryIndexObjectFile::findBitcodeInMemBuffer(MemoryBufferRef Object) { // Looks for module summary index in the given memory buffer. // returns true if found, else false. bool ModuleSummaryIndexObjectFile::hasGlobalValueSummaryInMemBuffer( - MemoryBufferRef Object, DiagnosticHandlerFunction DiagnosticHandler) { + MemoryBufferRef Object, + const DiagnosticHandlerFunction &DiagnosticHandler) { ErrorOr BCOrErr = findBitcodeInMemBuffer(Object); if (!BCOrErr) return false; @@ -83,7 +84,8 @@ bool ModuleSummaryIndexObjectFile::hasGlobalValueSummaryInMemBuffer( // module summary/index. ErrorOr> ModuleSummaryIndexObjectFile::create( - MemoryBufferRef Object, DiagnosticHandlerFunction DiagnosticHandler) { + MemoryBufferRef Object, + const DiagnosticHandlerFunction &DiagnosticHandler) { std::unique_ptr Index; ErrorOr BCOrErr = findBitcodeInMemBuffer(Object); @@ -105,7 +107,7 @@ ModuleSummaryIndexObjectFile::create( // Parse the module summary index out of an IR file and return the summary // index object if found, or nullptr if not. ErrorOr> llvm::getModuleSummaryIndexForFile( - StringRef Path, DiagnosticHandlerFunction DiagnosticHandler) { + StringRef Path, const DiagnosticHandlerFunction &DiagnosticHandler) { ErrorOr> FileOrErr = MemoryBuffer::getFileOrSTDIN(Path); std::error_code EC = FileOrErr.getError(); diff --git a/lib/Transforms/IPO/FunctionImport.cpp b/lib/Transforms/IPO/FunctionImport.cpp index d0b2667369b..e22f4cbe34d 100644 --- a/lib/Transforms/IPO/FunctionImport.cpp +++ b/lib/Transforms/IPO/FunctionImport.cpp @@ -679,9 +679,9 @@ static void diagnosticHandler(const DiagnosticInfo &DI) { /// Parse the summary index out of an IR file and return the summary /// index object if found, or nullptr if not. -static std::unique_ptr -getModuleSummaryIndexForFile(StringRef Path, std::string &Error, - DiagnosticHandlerFunction DiagnosticHandler) { +static std::unique_ptr getModuleSummaryIndexForFile( + StringRef Path, std::string &Error, + const DiagnosticHandlerFunction &DiagnosticHandler) { std::unique_ptr Buffer; ErrorOr> BufferOrErr = MemoryBuffer::getFile(Path); diff --git a/lib/Transforms/Scalar/GVN.cpp b/lib/Transforms/Scalar/GVN.cpp index c3fcbbffeba..944e06d4391 100644 --- a/lib/Transforms/Scalar/GVN.cpp +++ b/lib/Transforms/Scalar/GVN.cpp @@ -106,7 +106,7 @@ template <> struct DenseMapInfo { static inline GVN::Expression getTombstoneKey() { return ~1U; } - static unsigned getHashValue(const GVN::Expression e) { + static unsigned getHashValue(const GVN::Expression &e) { using llvm::hash_value; return static_cast(hash_value(e)); } diff --git a/lib/Transforms/Scalar/MemCpyOptimizer.cpp b/lib/Transforms/Scalar/MemCpyOptimizer.cpp index ba02bad31bb..76b9f55ad0c 100644 --- a/lib/Transforms/Scalar/MemCpyOptimizer.cpp +++ b/lib/Transforms/Scalar/MemCpyOptimizer.cpp @@ -1399,9 +1399,9 @@ bool MemCpyOptPass::runImpl( bool MadeChange = false; MD = MD_; TLI = TLI_; - LookupAliasAnalysis = LookupAliasAnalysis_; - LookupAssumptionCache = LookupAssumptionCache_; - LookupDomTree = LookupDomTree_; + LookupAliasAnalysis = std::move(LookupAliasAnalysis_); + LookupAssumptionCache = std::move(LookupAssumptionCache_); + LookupDomTree = std::move(LookupDomTree_); // If we don't have at least memset and memcpy, there is little point of doing // anything here. These are required by a freestanding implementation, so if diff --git a/lib/Transforms/Vectorize/LoopVectorize.cpp b/lib/Transforms/Vectorize/LoopVectorize.cpp index 321dd6161a6..0c4605ea4b3 100644 --- a/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -325,8 +325,8 @@ public: // can be validly truncated to. The cost model has assumed this truncation // will happen when vectorizing. void vectorize(LoopVectorizationLegality *L, - MapVector MinimumBitWidths) { - MinBWs = MinimumBitWidths; + const MapVector &MinimumBitWidths) { + MinBWs = &MinimumBitWidths; Legal = L; // Create a new empty loop. Unlink the old loop and connect the new one. createEmptyLoop(); @@ -597,7 +597,7 @@ protected: /// Map of scalar integer values to the smallest bitwidth they can be legally /// represented as. The vector equivalents of these values should be truncated /// to this type. - MapVector MinBWs; + const MapVector *MinBWs; LoopVectorizationLegality *Legal; // Record whether runtime checks are added. @@ -1431,7 +1431,7 @@ private: /// Updates the vectorization state by adding \p Phi to the inductions list. /// This can set \p Phi as the main induction of the loop if \p Phi is a /// better choice for the main induction than the existing one. - void addInductionPhi(PHINode *Phi, InductionDescriptor ID, + void addInductionPhi(PHINode *Phi, const InductionDescriptor &ID, SmallPtrSetImpl &AllowedExit); /// Report an analysis message to assist the user in diagnosing loops that are @@ -3494,7 +3494,7 @@ void InnerLoopVectorizer::truncateToMinimalBitwidths() { // later and will remove any ext/trunc pairs. // SmallPtrSet Erased; - for (auto &KV : MinBWs) { + for (const auto &KV : *MinBWs) { VectorParts &Parts = WidenMap.get(KV.first); for (Value *&I : Parts) { if (Erased.count(I) || I->use_empty()) @@ -3589,7 +3589,7 @@ void InnerLoopVectorizer::truncateToMinimalBitwidths() { } // We'll have created a bunch of ZExts that are now parentless. Clean up. - for (auto &KV : MinBWs) { + for (const auto &KV : *MinBWs) { VectorParts &Parts = WidenMap.get(KV.first); for (Value *&I : Parts) { ZExtInst *Inst = dyn_cast(I); @@ -4724,7 +4724,7 @@ static bool hasOutsideLoopUser(const Loop *TheLoop, Instruction *Inst, } void LoopVectorizationLegality::addInductionPhi( - PHINode *Phi, InductionDescriptor ID, + PHINode *Phi, const InductionDescriptor &ID, SmallPtrSetImpl &AllowedExit) { Inductions[Phi] = ID; Type *PhiTy = Phi->getType(); diff --git a/tools/llvm-profdata/llvm-profdata.cpp b/tools/llvm-profdata/llvm-profdata.cpp index 4d590b1503f..8e4b4c3d4ed 100644 --- a/tools/llvm-profdata/llvm-profdata.cpp +++ b/tools/llvm-profdata/llvm-profdata.cpp @@ -321,18 +321,19 @@ static int merge_main(int argc, const char *argv[]) { return 0; } -static int showInstrProfile(std::string Filename, bool ShowCounts, +static int showInstrProfile(const std::string &Filename, bool ShowCounts, bool ShowIndirectCallTargets, bool ShowDetailedSummary, std::vector DetailedSummaryCutoffs, - bool ShowAllFunctions, std::string ShowFunction, - bool TextFormat, raw_fd_ostream &OS) { + bool ShowAllFunctions, + const std::string &ShowFunction, bool TextFormat, + raw_fd_ostream &OS) { auto ReaderOrErr = InstrProfReader::create(Filename); - std::vector Cutoffs(DetailedSummaryCutoffs); - if (ShowDetailedSummary && DetailedSummaryCutoffs.empty()) { + std::vector Cutoffs = std::move(DetailedSummaryCutoffs); + if (ShowDetailedSummary && Cutoffs.empty()) { Cutoffs = {800000, 900000, 950000, 990000, 999000, 999900, 999990}; } - InstrProfSummaryBuilder Builder(Cutoffs); + InstrProfSummaryBuilder Builder(std::move(Cutoffs)); if (Error E = ReaderOrErr.takeError()) exitWithError(std::move(E), Filename); @@ -438,8 +439,9 @@ static int showInstrProfile(std::string Filename, bool ShowCounts, return 0; } -static int showSampleProfile(std::string Filename, bool ShowCounts, - bool ShowAllFunctions, std::string ShowFunction, +static int showSampleProfile(const std::string &Filename, bool ShowCounts, + bool ShowAllFunctions, + const std::string &ShowFunction, raw_fd_ostream &OS) { using namespace sampleprof; LLVMContext Context; diff --git a/tools/sancov/sancov.cc b/tools/sancov/sancov.cc index 5ad6438b3c1..4f8df41f2f1 100644 --- a/tools/sancov/sancov.cc +++ b/tools/sancov/sancov.cc @@ -234,7 +234,7 @@ struct AddrInfo : public DILineInfo { } private: - static std::string normalizeFilename(std::string FileName) { + static std::string normalizeFilename(const std::string &FileName) { SmallString<256> S(FileName); sys::path::remove_dots(S, /* remove_dot_dot */ true); return S.str().str(); @@ -284,7 +284,7 @@ private: }; // Collect all debug info for given addresses. -static std::vector getAddrInfo(std::string ObjectFile, +static std::vector getAddrInfo(const std::string &ObjectFile, const std::set &Addrs, bool InlinedCode) { std::vector Result; @@ -416,7 +416,7 @@ static void getObjectCoveragePoints(const object::ObjectFile &O, static void visitObjectFiles(const object::Archive &A, - std::function Fn) { + function_ref Fn) { for (auto &ErrorOrChild : A.children()) { FailIfError(ErrorOrChild); const object::Archive::Child &C = *ErrorOrChild; @@ -430,8 +430,8 @@ visitObjectFiles(const object::Archive &A, } static void -visitObjectFiles(std::string FileName, - std::function Fn) { +visitObjectFiles(const std::string &FileName, + function_ref Fn) { Expected> BinaryOrErr = object::createBinary(FileName); if (!BinaryOrErr) @@ -446,7 +446,7 @@ visitObjectFiles(std::string FileName, FailIfError(object::object_error::invalid_file_type); } -std::set findSanitizerCovFunctions(std::string FileName) { +std::set findSanitizerCovFunctions(const std::string &FileName) { std::set Result; visitObjectFiles(FileName, [&](const object::ObjectFile &O) { auto Addrs = findSanitizerCovFunctions(O); @@ -458,7 +458,7 @@ std::set findSanitizerCovFunctions(std::string FileName) { // Locate addresses of all coverage points in a file. Coverage point // is defined as the 'address of instruction following __sanitizer_cov // call - 1'. -std::set getCoveragePoints(std::string FileName) { +std::set getCoveragePoints(const std::string &FileName) { std::set Result; visitObjectFiles(FileName, [&](const object::ObjectFile &O) { getObjectCoveragePoints(O, &Result); @@ -466,7 +466,7 @@ std::set getCoveragePoints(std::string FileName) { return Result; } -static void printCovPoints(std::string ObjFile, raw_ostream &OS) { +static void printCovPoints(const std::string &ObjFile, raw_ostream &OS) { for (uint64_t Addr : getCoveragePoints(ObjFile)) { OS << "0x"; OS.write_hex(Addr); @@ -515,7 +515,7 @@ static std::string formatHtmlPct(size_t Pct) { return Zeroes + Num; } -static std::string anchorName(std::string Anchor) { +static std::string anchorName(const std::string &Anchor) { llvm::MD5 Hasher; llvm::MD5::MD5Result Hash; Hasher.update(Anchor); @@ -526,7 +526,7 @@ static std::string anchorName(std::string Anchor) { return HexString.str().str(); } -static ErrorOr isCoverageFile(std::string FileName) { +static ErrorOr isCoverageFile(const std::string &FileName) { ErrorOr> BufOrErr = MemoryBuffer::getFile(FileName); if (!BufOrErr) { @@ -564,7 +564,8 @@ static raw_ostream &operator<<(raw_ostream &OS, const CoverageStats &Stats) { class CoverageData { public: // Read single file coverage data. - static ErrorOr> read(std::string FileName) { + static ErrorOr> + read(const std::string &FileName) { ErrorOr> BufOrErr = MemoryBuffer::getFile(FileName); if (!BufOrErr) @@ -847,7 +848,7 @@ static void printFunctionLocs(const SourceCoverageData::FunctionLocs &FnLocs, class CoverageDataWithObjectFile : public CoverageData { public: static ErrorOr> - readAndMerge(std::string ObjectFile, + readAndMerge(const std::string &ObjectFile, const std::vector &FileNames) { auto MergedDataOrError = CoverageData::readAndMerge(FileNames); if (!MergedDataOrError)