Author: Benjamin Kramer Date: 2020-02-08T13:28:29+01:00 New Revision: ef83d46b6b428fa1c8614cd28ab6fe3f07f8d075
URL: https://github.com/llvm/llvm-project/commit/ef83d46b6b428fa1c8614cd28ab6fe3f07f8d075 DIFF: https://github.com/llvm/llvm-project/commit/ef83d46b6b428fa1c8614cd28ab6fe3f07f8d075.diff LOG: Use heterogenous lookup for std;:map<std::string with a StringRef. NFCI. Added: Modified: clang/include/clang/Frontend/CompilerInstance.h clang/include/clang/Lex/HeaderSearchOptions.h clang/lib/Frontend/CompilerInstance.cpp clang/lib/Lex/HeaderSearch.cpp llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h llvm/include/llvm/IR/ModuleSummaryIndex.h llvm/lib/DebugInfo/Symbolize/Symbolize.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Frontend/CompilerInstance.h b/clang/include/clang/Frontend/CompilerInstance.h index e501dde465cc..a935851d5b60 100644 --- a/clang/include/clang/Frontend/CompilerInstance.h +++ b/clang/include/clang/Frontend/CompilerInstance.h @@ -128,7 +128,7 @@ class CompilerInstance : public ModuleLoader { /// The set of top-level modules that has already been built on the /// fly as part of this overall compilation action. - std::map<std::string, std::string> BuiltModules; + std::map<std::string, std::string, std::less<>> BuiltModules; /// Should we delete the BuiltModules when we're done? bool DeleteBuiltModules = true; diff --git a/clang/include/clang/Lex/HeaderSearchOptions.h b/clang/include/clang/Lex/HeaderSearchOptions.h index 30a9d7564fd3..3af49e175395 100644 --- a/clang/include/clang/Lex/HeaderSearchOptions.h +++ b/clang/include/clang/Lex/HeaderSearchOptions.h @@ -115,7 +115,7 @@ class HeaderSearchOptions { std::string ModuleUserBuildPath; /// The mapping of module names to prebuilt module files. - std::map<std::string, std::string> PrebuiltModuleFiles; + std::map<std::string, std::string, std::less<>> PrebuiltModuleFiles; /// The directories used to load prebuilt module files. std::vector<std::string> PrebuiltModulePaths; diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index 0db8df0fada8..fe787918b41b 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -1634,15 +1634,15 @@ enum ModuleSource { /// Select a source for loading the named module and compute the filename to /// load it from. -static ModuleSource -selectModuleSource(Module *M, StringRef ModuleName, std::string &ModuleFilename, - const std::map<std::string, std::string> &BuiltModules, - HeaderSearch &HS) { +static ModuleSource selectModuleSource( + Module *M, StringRef ModuleName, std::string &ModuleFilename, + const std::map<std::string, std::string, std::less<>> &BuiltModules, + HeaderSearch &HS) { assert(ModuleFilename.empty() && "Already has a module source?"); // Check to see if the module has been built as part of this compilation // via a module build pragma. - auto BuiltModuleIt = BuiltModules.find(std::string(ModuleName)); + auto BuiltModuleIt = BuiltModules.find(ModuleName); if (BuiltModuleIt != BuiltModules.end()) { ModuleFilename = BuiltModuleIt->second; return MS_ModuleBuildPragma; diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp index 73c02d7f6e6d..65d109ebf034 100644 --- a/clang/lib/Lex/HeaderSearch.cpp +++ b/clang/lib/Lex/HeaderSearch.cpp @@ -145,7 +145,7 @@ std::string HeaderSearch::getCachedModuleFileName(Module *Module) { std::string HeaderSearch::getPrebuiltModuleFileName(StringRef ModuleName, bool FileMapOnly) { // First check the module name to pcm file map. - auto i(HSOpts->PrebuiltModuleFiles.find(std::string(ModuleName))); + auto i(HSOpts->PrebuiltModuleFiles.find(ModuleName)); if (i != HSOpts->PrebuiltModuleFiles.end()) return i->second; diff --git a/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h b/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h index 8bfa5432b811..632540c79b0d 100644 --- a/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h +++ b/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h @@ -114,7 +114,8 @@ class LLVMSymbolizer { Expected<ObjectFile *> getOrCreateObject(const std::string &Path, const std::string &ArchName); - std::map<std::string, std::unique_ptr<SymbolizableModule>> Modules; + std::map<std::string, std::unique_ptr<SymbolizableModule>, std::less<>> + Modules; /// Contains cached results of getOrCreateObjectPair(). std::map<std::pair<std::string, std::string>, ObjectPair> diff --git a/llvm/include/llvm/IR/ModuleSummaryIndex.h b/llvm/include/llvm/IR/ModuleSummaryIndex.h index 1296de75325b..dab0ad9fe055 100644 --- a/llvm/include/llvm/IR/ModuleSummaryIndex.h +++ b/llvm/include/llvm/IR/ModuleSummaryIndex.h @@ -959,7 +959,8 @@ class ModuleSummaryIndex { /// with that type identifier's metadata. Produced by per module summary /// analysis and consumed by thin link. For more information, see description /// above where TypeIdCompatibleVtableInfo is defined. - std::map<std::string, TypeIdCompatibleVtableInfo> TypeIdCompatibleVtableMap; + std::map<std::string, TypeIdCompatibleVtableInfo, std::less<>> + TypeIdCompatibleVtableMap; /// Mapping from original ID to GUID. If original ID can map to multiple /// GUIDs, it will be mapped to 0. @@ -1361,8 +1362,7 @@ class ModuleSummaryIndex { TypeId)); } - const std::map<std::string, TypeIdCompatibleVtableInfo> & - typeIdCompatibleVtableMap() const { + const auto &typeIdCompatibleVtableMap() const { return TypeIdCompatibleVtableMap; } @@ -1378,7 +1378,7 @@ class ModuleSummaryIndex { /// entry if present in the summary map. This may be used when importing. Optional<TypeIdCompatibleVtableInfo> getTypeIdCompatibleVtableSummary(StringRef TypeId) const { - auto I = TypeIdCompatibleVtableMap.find(std::string(TypeId)); + auto I = TypeIdCompatibleVtableMap.find(TypeId); if (I == TypeIdCompatibleVtableMap.end()) return None; return I->second; diff --git a/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp b/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp index d0948fd9ab8c..84cf4d40318f 100644 --- a/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp +++ b/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp @@ -62,7 +62,7 @@ Expected<DILineInfo> LLVMSymbolizer::symbolizeCode(const ObjectFile &Obj, object::SectionedAddress ModuleOffset) { StringRef ModuleName = Obj.getFileName(); - auto I = Modules.find(std::string(ModuleName)); + auto I = Modules.find(ModuleName); if (I != Modules.end()) return symbolizeCodeCommon(I->second.get(), ModuleOffset); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits