diff options
author | Kazu Hirata <kazu@google.com> | 2024-10-03 08:28:42 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-03 08:28:42 -0700 |
commit | 20d402ab087f2369c0099f151b5480efb1b7fecf (patch) | |
tree | 954cb6f69151fd7da52a24c441cf0156734540af /clang/lib/Serialization/GlobalModuleIndex.cpp | |
parent | 28733ed686c4ca54042d6a9b8ae318c8f3b7b287 (diff) | |
download | llvm-20d402ab087f2369c0099f151b5480efb1b7fecf.zip llvm-20d402ab087f2369c0099f151b5480efb1b7fecf.tar.gz llvm-20d402ab087f2369c0099f151b5480efb1b7fecf.tar.bz2 |
[Serialization] Avoid repeated hash lookups (NFC) (#110950)
Diffstat (limited to 'clang/lib/Serialization/GlobalModuleIndex.cpp')
-rw-r--r-- | clang/lib/Serialization/GlobalModuleIndex.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/clang/lib/Serialization/GlobalModuleIndex.cpp b/clang/lib/Serialization/GlobalModuleIndex.cpp index 1163943..9c48712 100644 --- a/clang/lib/Serialization/GlobalModuleIndex.cpp +++ b/clang/lib/Serialization/GlobalModuleIndex.cpp @@ -430,14 +430,13 @@ namespace { /// Retrieve the module file information for the given file. ModuleFileInfo &getModuleFileInfo(FileEntryRef File) { - auto Known = ModuleFiles.find(File); - if (Known != ModuleFiles.end()) - return Known->second; - - unsigned NewID = ModuleFiles.size(); - ModuleFileInfo &Info = ModuleFiles[File]; - Info.ID = NewID; - return Info; + auto [It, Inserted] = ModuleFiles.try_emplace(File); + if (Inserted) { + unsigned NewID = ModuleFiles.size(); + ModuleFileInfo &Info = It->second; + Info.ID = NewID; + } + return It->second; } public: |