aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Serialization/GlobalModuleIndex.cpp
diff options
context:
space:
mode:
authorKazu Hirata <kazu@google.com>2024-10-03 08:28:42 -0700
committerGitHub <noreply@github.com>2024-10-03 08:28:42 -0700
commit20d402ab087f2369c0099f151b5480efb1b7fecf (patch)
tree954cb6f69151fd7da52a24c441cf0156734540af /clang/lib/Serialization/GlobalModuleIndex.cpp
parent28733ed686c4ca54042d6a9b8ae318c8f3b7b287 (diff)
downloadllvm-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.cpp15
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: