https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/107961
None >From c995b27c81f0342ebbb44ce3dbf98d8415e507e4 Mon Sep 17 00:00:00 2001 From: Kazu Hirata <k...@google.com> Date: Mon, 9 Sep 2024 07:34:57 -0700 Subject: [PATCH] [Tablegen] Avoid repeated hash lookps (NFC) --- .../TableGen/ClangOpenCLBuiltinEmitter.cpp | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp b/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp index 968b3e0661a8f3..74c3a856ab6937 100644 --- a/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp +++ b/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp @@ -510,10 +510,7 @@ void BuiltinNameEmitter::GetOverloads() { std::vector<Record *> Builtins = Records.getAllDerivedDefinitions("Builtin"); for (const auto *B : Builtins) { StringRef BName = B->getValueAsString("Name"); - if (!FctOverloadMap.contains(BName)) { - FctOverloadMap.insert(std::make_pair( - BName, std::vector<std::pair<const Record *, unsigned>>{})); - } + FctOverloadMap.try_emplace(BName); auto Signature = B->getValueAsListOfDefs("Signature"); // Reuse signatures to avoid unnecessary duplicates. @@ -812,17 +809,8 @@ static void OCL2Qual(Sema &S, const OpenCLTypeStruct &Ty, // Map an image type name to its 3 access-qualified types (RO, WO, RW). StringMap<SmallVector<Record *, 3>> ImageTypesMap; - for (auto *IT : ImageTypes) { - auto Entry = ImageTypesMap.find(IT->getValueAsString("Name")); - if (Entry == ImageTypesMap.end()) { - SmallVector<Record *, 3> ImageList; - ImageList.push_back(IT); - ImageTypesMap.insert( - std::make_pair(IT->getValueAsString("Name"), ImageList)); - } else { - Entry->second.push_back(IT); - } - } + for (auto *IT : ImageTypes) + ImageTypesMap[IT->getValueAsString("Name")].push_back(IT); // Emit the cases for the image types. For an image type name, there are 3 // corresponding QualTypes ("RO", "WO", "RW"). The "AccessQualifier" field _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits