[clang-tools-extra] [clang-tidy] Avoid repeated hash lookups (NFC) (PR #112074)

2024-10-12 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/112074
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Avoid repeated hash lookups (NFC) (PR #112071)

2024-10-12 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/112071
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-tidy] Avoid repeated hash lookups (NFC) (PR #112074)

2024-10-11 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/112074

None

>From 997f530747ecb90b4ac26e61608d2986a5c74c7e Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 11 Oct 2024 09:06:03 -0700
Subject: [PATCH] [clang-tidy] Avoid repeated hash lookups (NFC)

---
 .../clang-tidy/misc/ConfusableIdentifierCheck.cpp   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp
index 5b1b1cd152fffb..6df565c9a9d691 100644
--- a/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp
@@ -137,11 +137,11 @@ static bool mayShadow(const NamedDecl *ND0,
 const ConfusableIdentifierCheck::ContextInfo *
 ConfusableIdentifierCheck::getContextInfo(const DeclContext *DC) {
   const DeclContext *PrimaryContext = DC->getPrimaryContext();
-  auto It = ContextInfos.find(PrimaryContext);
-  if (It != ContextInfos.end())
+  auto [It, Inserted] = ContextInfos.try_emplace(PrimaryContext);
+  if (!Inserted)
 return &It->second;
 
-  ContextInfo &Info = ContextInfos[PrimaryContext];
+  ContextInfo &Info = It->second;
   Info.PrimaryContext = PrimaryContext;
   Info.NonTransparentContext = PrimaryContext;
 

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Avoid repeated hash lookups (NFC) (PR #112071)

2024-10-11 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/112071

None

>From 72511061e8a3691e0656ce8d0f69f489313eb609 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 11 Oct 2024 09:06:55 -0700
Subject: [PATCH] [Sema] Avoid repeated hash lookups (NFC)

---
 clang/lib/Sema/SemaTemplateDeduction.cpp | 9 -
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp 
b/clang/lib/Sema/SemaTemplateDeduction.cpp
index aa62cfa7dcbd17..7cfb8d687c796a 100644
--- a/clang/lib/Sema/SemaTemplateDeduction.cpp
+++ b/clang/lib/Sema/SemaTemplateDeduction.cpp
@@ -4057,11 +4057,10 @@ TemplateDeductionResult 
Sema::FinishTemplateArgumentDeduction(
   // keep track of these diagnostics. They'll be emitted if this specialization
   // is actually used.
   if (Info.diag_begin() != Info.diag_end()) {
-SuppressedDiagnosticsMap::iterator
-  Pos = SuppressedDiagnostics.find(Specialization->getCanonicalDecl());
-if (Pos == SuppressedDiagnostics.end())
-SuppressedDiagnostics[Specialization->getCanonicalDecl()]
-  .append(Info.diag_begin(), Info.diag_end());
+auto [Pos, Inserted] =
+SuppressedDiagnostics.try_emplace(Specialization->getCanonicalDecl());
+if (Inserted)
+  Pos->second.append(Info.diag_begin(), Info.diag_end());
   }
 
   return TemplateDeductionResult::Success;

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clangd] Simplify code with *Map::operator[] (NFC) (PR #111939)

2024-10-11 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111939
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clangd] Simplify code with *Map::operator[] (NFC) (PR #111939)

2024-10-10 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111939

None

>From aeebcbd92118161c1a75aefa369ba11f40f79ddd Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Thu, 10 Oct 2024 08:37:40 -0700
Subject: [PATCH] [clangd] Simplify code with *Map::operator[] (NFC)

---
 clang-tools-extra/clangd/Headers.cpp | 4 ++--
 clang-tools-extra/clangd/XRefs.cpp   | 3 +--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/clang-tools-extra/clangd/Headers.cpp 
b/clang-tools-extra/clangd/Headers.cpp
index 75f8668e7bef06..b537417bd10568 100644
--- a/clang-tools-extra/clangd/Headers.cpp
+++ b/clang-tools-extra/clangd/Headers.cpp
@@ -75,8 +75,8 @@ class IncludeStructure::RecordHeaders : public PPCallbacks {
   IDs.push_back(HID);
   }
   }
-  Out->MainFileIncludesBySpelling.try_emplace(Inc.Written)
-  .first->second.push_back(Out->MainFileIncludes.size() - 1);
+  Out->MainFileIncludesBySpelling[Inc.Written].push_back(
+  Out->MainFileIncludes.size() - 1);
 }
 
 // Record include graph (not just for main-file includes)
diff --git a/clang-tools-extra/clangd/XRefs.cpp 
b/clang-tools-extra/clangd/XRefs.cpp
index f94cadeffaa298..b34aba603b5306 100644
--- a/clang-tools-extra/clangd/XRefs.cpp
+++ b/clang-tools-extra/clangd/XRefs.cpp
@@ -2282,8 +2282,7 @@ incomingCalls(const CallHierarchyItem &Item, const 
SymbolIndex *Index) {
   elog("incomingCalls failed to convert location: {0}", Loc.takeError());
   return;
 }
-auto It = CallsIn.try_emplace(R.Container, std::vector{}).first;
-It->second.push_back(Loc->range);
+CallsIn[R.Container].push_back(Loc->range);
 
 ContainerLookup.IDs.insert(R.Container);
   });

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-tidy] Avoid repeated hash lookups (NFC) (PR #111785)

2024-10-10 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111785
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-change-namespace] Avoid repeated hash lookups (NFC) (PR #111784)

2024-10-10 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111784
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-apply-replacements] Avoid repeated hash lookups (NFC) (PR #111783)

2024-10-10 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111783
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-tidy] Avoid repeated hash lookups (NFC) (PR #111785)

2024-10-09 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111785

None

>From 14e7f5dd2176e4fbde0fd699e5a7088239d8faf0 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Wed, 9 Oct 2024 06:52:33 -0700
Subject: [PATCH] [clang-tidy] Avoid repeated hash lookups (NFC)

---
 .../clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/clang-tools-extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp
index d77df50f8fea24..080454287f28b5 100644
--- a/clang-tools-extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp
@@ -146,12 +146,13 @@ void 
ForwardDeclarationNamespaceCheck::onEndOfTranslationUnit() {
   }
   // Check if a definition in another namespace exists.
   const auto DeclName = CurDecl->getName();
-  if (!DeclNameToDefinitions.contains(DeclName)) {
+  auto It = DeclNameToDefinitions.find(DeclName);
+  if (It == DeclNameToDefinitions.end()) {
 continue; // No definition in this translation unit, we can skip it.
   }
   // Make a warning for each definition with the same name (in other
   // namespaces).
-  const auto &Definitions = DeclNameToDefinitions[DeclName];
+  const auto &Definitions = It->second;
   for (const auto *Def : Definitions) {
 diag(CurDecl->getLocation(),
  "no definition found for %0, but a definition with "

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-change-namespace] Avoid repeated hash lookups (NFC) (PR #111784)

2024-10-09 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111784

None

>From faf633c5d8a3f255aca95d80bbc4e4e2eede84e3 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Wed, 9 Oct 2024 06:51:41 -0700
Subject: [PATCH] [clang-change-namespace] Avoid repeated hash lookups (NFC)

---
 clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp 
b/clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp
index 879c0d26d472a8..850df7daf5c038 100644
--- a/clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp
+++ b/clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp
@@ -606,9 +606,8 @@ void ChangeNamespaceTool::run(
  Result.Nodes.getNodeAs("func_ref")) {
 // If this reference has been processed as a function call, we do not
 // process it again.
-if (ProcessedFuncRefs.count(FuncRef))
+if (!ProcessedFuncRefs.insert(FuncRef).second)
   return;
-ProcessedFuncRefs.insert(FuncRef);
 const auto *Func = Result.Nodes.getNodeAs("func_decl");
 assert(Func);
 const auto *Context = Result.Nodes.getNodeAs("dc");

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-apply-replacements] Avoid repeated hash lookups (NFC) (PR #111783)

2024-10-09 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111783

None

>From f64ab109642e2fa26b6fc58bb84416787996c685 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Wed, 9 Oct 2024 06:51:06 -0700
Subject: [PATCH] [clang-apply-replacements] Avoid repeated hash lookups (NFC)

---
 .../lib/Tooling/ApplyReplacements.cpp  | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git 
a/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp 
b/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp
index 9e0da82dfd3806..b895075e4f31cc 100644
--- 
a/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp
+++ 
b/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp
@@ -148,11 +148,8 @@ groupReplacements(const TUReplacements &TUs, const 
TUDiagnostics &TUDs,
 
 if (auto Entry = SM.getFileManager().getOptionalFileRef(Path)) {
   if (SourceTU) {
-auto &Replaces = DiagReplacements[*Entry];
-auto It = Replaces.find(R);
-if (It == Replaces.end())
-  Replaces.emplace(R, SourceTU);
-else if (It->second != SourceTU)
+auto [It, Inserted] = DiagReplacements[*Entry].try_emplace(R, 
SourceTU);
+if (!Inserted && It->second != SourceTU)
   // This replacement is a duplicate of one suggested by another TU.
   return;
   }

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-tidy] Avoid repeated hash lookups (NFC) (PR #111628)

2024-10-08 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111628

None

>From 04ac47ef9952eaeb4e9d8ef7f7b96cb050865a3a Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Tue, 8 Oct 2024 20:42:13 -0700
Subject: [PATCH] [clang-tidy] Avoid repeated hash lookups (NFC)

---
 .../clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp   | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git 
a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp 
b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp
index 9c3c7cc70c187b..225e867c9b24f7 100644
--- a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp
+++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp
@@ -474,10 +474,8 @@ void ProTypeMemberInitCheck::checkMissingMemberInitializer(
   // It only includes fields that have not been fixed
   SmallPtrSet AllFieldsToInit;
   forEachField(ClassDecl, FieldsToInit, [&](const FieldDecl *F) {
-if (!HasRecordClassMemberSet.contains(F)) {
+if (HasRecordClassMemberSet.insert(F).second)
   AllFieldsToInit.insert(F);
-  HasRecordClassMemberSet.insert(F);
-}
   });
   if (FieldsToInit.empty())
 return;

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Tooling] Avoid repeated hash lookups (NFC) (PR #111469)

2024-10-08 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111469
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver] Avoid repeated hash lookups (NFC) (PR #111468)

2024-10-08 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111468
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Basic] Avoid repeated hash lookups (NFC) (PR #111467)

2024-10-08 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111467
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Tooling] Avoid repeated hash lookups (NFC) (PR #111469)

2024-10-07 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111469

None

>From 63f32da83241327082af3baa57f59480d9825e47 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Mon, 7 Oct 2024 07:06:16 -0700
Subject: [PATCH] [Tooling] Avoid repeated hash lookups (NFC)

---
 clang/lib/Tooling/Inclusions/HeaderIncludes.cpp | 9 +++--
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp 
b/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp
index 4313da66efc0b7..0cb96097415ea8 100644
--- a/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp
+++ b/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp
@@ -320,12 +320,9 @@ HeaderIncludes::HeaderIncludes(StringRef FileName, 
StringRef Code,
   // - If CategoryEndOffset[Priority] isn't set, use the next higher value
   // that is set, up to CategoryEndOffset[Highest].
   auto Highest = Priorities.begin();
-  if (CategoryEndOffsets.find(*Highest) == CategoryEndOffsets.end()) {
-if (FirstIncludeOffset >= 0)
-  CategoryEndOffsets[*Highest] = FirstIncludeOffset;
-else
-  CategoryEndOffsets[*Highest] = MinInsertOffset;
-  }
+  auto [It, Inserted] = CategoryEndOffsets.try_emplace(*Highest);
+  if (Inserted)
+It->second = FirstIncludeOffset >= 0 ? FirstIncludeOffset : 
MinInsertOffset;
   // By this point, CategoryEndOffset[Highest] is always set appropriately:
   //  - to an appropriate location before/after existing #includes, or
   //  - to right after the header guard, or

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver] Avoid repeated hash lookups (NFC) (PR #111468)

2024-10-07 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111468

None

>From 9bc29851603347edbc4324ccbdb4fef47a1c2626 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Mon, 7 Oct 2024 07:06:51 -0700
Subject: [PATCH] [Driver] Avoid repeated hash lookups (NFC)

---
 clang/lib/Driver/MultilibBuilder.cpp | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/clang/lib/Driver/MultilibBuilder.cpp 
b/clang/lib/Driver/MultilibBuilder.cpp
index 15adf501778093..4b365a164c4586 100644
--- a/clang/lib/Driver/MultilibBuilder.cpp
+++ b/clang/lib/Driver/MultilibBuilder.cpp
@@ -74,13 +74,11 @@ bool MultilibBuilder::isValid() const {
   llvm::StringMap FlagSet;
   for (unsigned I = 0, N = Flags.size(); I != N; ++I) {
 StringRef Flag(Flags[I]);
-llvm::StringMap::iterator SI = FlagSet.find(Flag.substr(1));
+auto [SI, Inserted] = FlagSet.try_emplace(Flag.substr(1), I);
 
 assert(StringRef(Flag).front() == '-' || StringRef(Flag).front() == '!');
 
-if (SI == FlagSet.end())
-  FlagSet[Flag.substr(1)] = I;
-else if (Flags[I] != Flags[SI->getValue()])
+if (!Inserted && Flags[I] != Flags[SI->getValue()])
   return false;
   }
   return true;

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Basic] Avoid repeated hash lookups (NFC) (PR #111467)

2024-10-07 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111467

None

>From fd6654f61025f4dc5b38a02d5c4ec3b52fe2c726 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Mon, 7 Oct 2024 07:04:14 -0700
Subject: [PATCH] [Basic] Avoid repeated hash lookups (NFC)

---
 clang/include/clang/Basic/PlistSupport.h | 11 ---
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/clang/include/clang/Basic/PlistSupport.h 
b/clang/include/clang/Basic/PlistSupport.h
index d52d196019cf84..1814130f1d2cb6 100644
--- a/clang/include/clang/Basic/PlistSupport.h
+++ b/clang/include/clang/Basic/PlistSupport.h
@@ -26,13 +26,10 @@ using FIDMap = llvm::DenseMap;
 
 inline unsigned AddFID(FIDMap &FIDs, SmallVectorImpl &V,
FileID FID) {
-  FIDMap::iterator I = FIDs.find(FID);
-  if (I != FIDs.end())
-return I->second;
-  unsigned NewValue = V.size();
-  FIDs[FID] = NewValue;
-  V.push_back(FID);
-  return NewValue;
+  auto [I, Inserted] = FIDs.try_emplace(FID, V.size());
+  if (Inserted)
+V.push_back(FID);
+  return I->second;
 }
 
 inline unsigned AddFID(FIDMap &FIDs, SmallVectorImpl &V,

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [AST] Avoid repeated hash lookups (NFC) (PR #111327)

2024-10-07 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111327
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [AST] Avoid repeated hash lookups (NFC) (PR #111327)

2024-10-06 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111327

Here I'm splitting up the existing "if" statement into two.  Mixing
hasDefinition() and insert() in one "if" condition would be extremely
confusing as hasDefinition() doesn't change anything while insert()
does.


>From f589b84590745c8709f1d9ce0e18c5e13746a27f Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Sun, 6 Oct 2024 09:25:35 -0700
Subject: [PATCH] [AST] Avoid repeated hash lookups (NFC)

Here I'm splitting up the existing "if" statement into two.  Mixing
hasDefinition() and insert() in one "if" condition would be extremely
confusing as hasDefinition() doesn't change anything while insert()
does.
---
 clang/lib/AST/CXXInheritance.cpp | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/clang/lib/AST/CXXInheritance.cpp b/clang/lib/AST/CXXInheritance.cpp
index 25de2a20a7f3b7..eb265a872c1259 100644
--- a/clang/lib/AST/CXXInheritance.cpp
+++ b/clang/lib/AST/CXXInheritance.cpp
@@ -259,12 +259,10 @@ bool CXXBasePaths::lookupInBases(ASTContext &Context,
 BaseRecord = TD->getTemplatedDecl();
 }
 if (BaseRecord) {
-  if (!BaseRecord->hasDefinition() ||
-  VisitedDependentRecords.count(BaseRecord)) {
+  if (!BaseRecord->hasDefinition())
+BaseRecord = nullptr;
+  else if (!VisitedDependentRecords.insert(BaseRecord).second)
 BaseRecord = nullptr;
-  } else {
-VisitedDependentRecords.insert(BaseRecord);
-  }
 }
   } else {
 BaseRecord = cast(

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clangd] Simplify ternary expressions with std::optional::value_or (NFC) (PR #111309)

2024-10-06 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111309
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clangd] Simplify ternary expressions with std::optional::value_or (NFC) (PR #111309)

2024-10-06 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111309

None

>From 8ada96e7b8f1f3778288f1c9b1bdf9b72ddcecac Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 4 Oct 2024 10:00:28 -0700
Subject: [PATCH] [clangd] Simplify ternary expressions with
 std::optional::value_or (NFC)

---
 clang-tools-extra/clangd/FindSymbols.cpp| 2 +-
 clang-tools-extra/clangd/index/MemIndex.cpp | 2 +-
 clang-tools-extra/clangd/index/dex/Dex.cpp  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/clang-tools-extra/clangd/FindSymbols.cpp 
b/clang-tools-extra/clangd/FindSymbols.cpp
index cf2f8b62a28419..84bcbc1f2ddd3f 100644
--- a/clang-tools-extra/clangd/FindSymbols.cpp
+++ b/clang-tools-extra/clangd/FindSymbols.cpp
@@ -111,7 +111,7 @@ getWorkspaceSymbols(llvm::StringRef Query, int Limit,
   *Req.Limit *= 5;
   }
   TopN Top(
-  Req.Limit ? *Req.Limit : std::numeric_limits::max());
+  Req.Limit.value_or(std::numeric_limits::max()));
   FuzzyMatcher Filter(Req.Query);
 
   Index->fuzzyFind(Req, [HintPath, &Top, &Filter, AnyScope = Req.AnyScope,
diff --git a/clang-tools-extra/clangd/index/MemIndex.cpp 
b/clang-tools-extra/clangd/index/MemIndex.cpp
index fe0ee873018b37..2665d46b97d839 100644
--- a/clang-tools-extra/clangd/index/MemIndex.cpp
+++ b/clang-tools-extra/clangd/index/MemIndex.cpp
@@ -31,7 +31,7 @@ bool MemIndex::fuzzyFind(
   trace::Span Tracer("MemIndex fuzzyFind");
 
   TopN> Top(
-  Req.Limit ? *Req.Limit : std::numeric_limits::max());
+  Req.Limit.value_or(std::numeric_limits::max()));
   FuzzyMatcher Filter(Req.Query);
   bool More = false;
   for (const auto &Pair : Index) {
diff --git a/clang-tools-extra/clangd/index/dex/Dex.cpp 
b/clang-tools-extra/clangd/index/dex/Dex.cpp
index 19dc3080f9f897..b7d3063e19b499 100644
--- a/clang-tools-extra/clangd/index/dex/Dex.cpp
+++ b/clang-tools-extra/clangd/index/dex/Dex.cpp
@@ -264,7 +264,7 @@ bool Dex::fuzzyFind(const FuzzyFindRequest &Req,
 return LHS.second > RHS.second;
   };
   TopN Top(
-  Req.Limit ? *Req.Limit : std::numeric_limits::max(), Compare);
+  Req.Limit.value_or(std::numeric_limits::max()), Compare);
   for (const auto &IDAndScore : IDAndScores) {
 const DocID SymbolDocID = IDAndScore.first;
 const auto *Sym = Symbols[SymbolDocID];

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [ByteCode] Avoid repeated hash lookups (NFC) (PR #111273)

2024-10-06 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111273
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [StaticAnalyzer] Avoid repeated hash lookups (NFC) (PR #111272)

2024-10-06 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111272
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [ByteCode] Avoid repeated hash lookups (NFC) (PR #111273)

2024-10-05 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111273

None

>From 48c833ccac40522a563f6c1610eef409628a45d9 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Sat, 5 Oct 2024 10:22:58 -0700
Subject: [PATCH] [ByteCode] Avoid repeated hash lookups (NFC)

---
 clang/lib/AST/ByteCode/Program.cpp | 12 +---
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/clang/lib/AST/ByteCode/Program.cpp 
b/clang/lib/AST/ByteCode/Program.cpp
index 969f523db51dfe..23245a66b578ae 100644
--- a/clang/lib/AST/ByteCode/Program.cpp
+++ b/clang/lib/AST/ByteCode/Program.cpp
@@ -284,15 +284,13 @@ Record *Program::getOrCreateRecord(const RecordDecl *RD) {
   if (!RD->isCompleteDefinition())
 return nullptr;
 
-  // Deduplicate records.
-  if (auto It = Records.find(RD); It != Records.end())
+  // Return an existing record if available.  Otherwise, we insert nullptr now
+  // and replace that later, so recursive calls to this function with the same
+  // RecordDecl don't run into infinite recursion.
+  auto [It, Inserted] = Records.try_emplace(RD);
+  if (!Inserted)
 return It->second;
 
-  // We insert nullptr now and replace that later, so recursive calls
-  // to this function with the same RecordDecl don't run into
-  // infinite recursion.
-  Records.insert({RD, nullptr});
-
   // Number of bytes required by fields and base classes.
   unsigned BaseSize = 0;
   // Number of bytes required by virtual base.

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [StaticAnalyzer] Avoid repeated hash lookups (NFC) (PR #111272)

2024-10-05 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111272

None

>From 9a5ad987040ed16478cd119814dc99ebc3d9d177 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Sat, 5 Oct 2024 10:24:52 -0700
Subject: [PATCH] [StaticAnalyzer] Avoid repeated hash lookups (NFC)

---
 .../StaticAnalyzer/Core/CheckerManager.cpp| 26 ---
 1 file changed, 11 insertions(+), 15 deletions(-)

diff --git a/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp 
b/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
index ef617f5715c370..9f7a0fcc2edb36 100644
--- a/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
+++ b/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
@@ -66,13 +66,10 @@ void CheckerManager::runCheckersOnASTDecl(const Decl *D, 
AnalysisManager& mgr,
   assert(D);
 
   unsigned DeclKind = D->getKind();
-  CachedDeclCheckers *checkers = nullptr;
-  CachedDeclCheckersMapTy::iterator CCI = CachedDeclCheckersMap.find(DeclKind);
-  if (CCI != CachedDeclCheckersMap.end()) {
-checkers = &(CCI->second);
-  } else {
+  auto [CCI, Inserted] = CachedDeclCheckersMap.try_emplace(DeclKind);
+  CachedDeclCheckers *checkers = &(CCI->second);
+  if (Inserted) {
 // Find the checkers that should run for this Decl and cache them.
-checkers = &CachedDeclCheckersMap[DeclKind];
 for (const auto &info : DeclCheckers)
   if (info.IsForDeclFn(D))
 checkers->push_back(info.CheckFn);
@@ -896,14 +893,13 @@ CheckerManager::getCachedStmtCheckersFor(const Stmt *S, 
bool isPreVisit) {
   assert(S);
 
   unsigned Key = (S->getStmtClass() << 1) | unsigned(isPreVisit);
-  CachedStmtCheckersMapTy::iterator CCI = CachedStmtCheckersMap.find(Key);
-  if (CCI != CachedStmtCheckersMap.end())
-return CCI->second;
-
-  // Find the checkers that should run for this Stmt and cache them.
-  CachedStmtCheckers &Checkers = CachedStmtCheckersMap[Key];
-  for (const auto &Info : StmtCheckers)
-if (Info.IsPreVisit == isPreVisit && Info.IsForStmtFn(S))
-  Checkers.push_back(Info.CheckFn);
+  auto [CCI, Inserted] = CachedStmtCheckersMap.try_emplace(Key);
+  CachedStmtCheckers &Checkers = CCI->second;
+  if (Inserted) {
+// Find the checkers that should run for this Stmt and cache them.
+for (const auto &Info : StmtCheckers)
+  if (Info.IsPreVisit == isPreVisit && Info.IsForStmtFn(S))
+Checkers.push_back(Info.CheckFn);
+  }
   return Checkers;
 }

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Basic] Avoid repeated hash lookups (NFC) (PR #111228)

2024-10-05 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111228
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Basic] Avoid repeated hash lookups (NFC) (PR #111228)

2024-10-05 Thread Kazu Hirata via cfe-commits

kazutakahirata wrote:

Please take a look.  Thanks!

https://github.com/llvm/llvm-project/pull/111228
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Basic] Avoid repeated hash lookups (NFC) (PR #111228)

2024-10-05 Thread Kazu Hirata via cfe-commits


@@ -92,11 +92,10 @@ parseTargetIDWithFormatCheckingOnly(llvm::StringRef 
TargetID,
 if (Sign != '+' && Sign != '-')
   return std::nullopt;
 bool IsOn = Sign == '+';
-auto Loc = FeatureMap->find(Feature);
+auto [Loc, Inserted] = FeatureMap->try_emplace(Feature, IsOn);

kazutakahirata wrote:

Thank you for pointing this out!

https://github.com/llvm/llvm-project/pull/111228
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Basic] Avoid repeated hash lookups (NFC) (PR #111228)

2024-10-05 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata updated 
https://github.com/llvm/llvm-project/pull/111228

>From 2e3d116613a7441b31036cf603d581db6e0afe9b Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 4 Oct 2024 08:00:11 -0700
Subject: [PATCH 1/2] [Basic] Avoid repeated hash lookups (NFC)

---
 clang/lib/Basic/TargetID.cpp | 13 ++---
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/clang/lib/Basic/TargetID.cpp b/clang/lib/Basic/TargetID.cpp
index fa1bfec2aacb9c..18f649c7137d7d 100644
--- a/clang/lib/Basic/TargetID.cpp
+++ b/clang/lib/Basic/TargetID.cpp
@@ -92,11 +92,10 @@ parseTargetIDWithFormatCheckingOnly(llvm::StringRef 
TargetID,
 if (Sign != '+' && Sign != '-')
   return std::nullopt;
 bool IsOn = Sign == '+';
-auto Loc = FeatureMap->find(Feature);
+auto [Loc, Inserted] = FeatureMap->try_emplace(Feature, IsOn);
 // Each feature can only show up at most once in target ID.
-if (Loc != FeatureMap->end())
+if (!Inserted)
   return std::nullopt;
-(*FeatureMap)[Feature] = IsOn;
 Features = Splits.second;
   }
   return Processor;
@@ -147,15 +146,15 @@ getConflictTargetIDCombination(const 
std::set &TargetIDs) {
   struct Info {
 llvm::StringRef TargetID;
 llvm::StringMap Features;
+Info(llvm::StringRef TargetID, const llvm::StringMap &Features)
+: TargetID(TargetID), Features(Features) {}
   };
   llvm::StringMap FeatureMap;
   for (auto &&ID : TargetIDs) {
 llvm::StringMap Features;
 llvm::StringRef Proc = *parseTargetIDWithFormatCheckingOnly(ID, &Features);
-auto Loc = FeatureMap.find(Proc);
-if (Loc == FeatureMap.end())
-  FeatureMap[Proc] = Info{ID, Features};
-else {
+auto [Loc, Inserted] = FeatureMap.try_emplace(Proc, ID, Features);
+if (!Inserted) {
   auto &ExistingFeatures = Loc->second.Features;
   if (llvm::any_of(Features, [&](auto &F) {
 return ExistingFeatures.count(F.first()) == 0;

>From 53778b2f63ed276bf66073ebbcbeb3d8a61bfa22 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Sat, 5 Oct 2024 09:57:16 -0700
Subject: [PATCH 2/2] Remove an unused variable.

---
 clang/lib/Basic/TargetID.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/clang/lib/Basic/TargetID.cpp b/clang/lib/Basic/TargetID.cpp
index 18f649c7137d7d..b42d1f07013c26 100644
--- a/clang/lib/Basic/TargetID.cpp
+++ b/clang/lib/Basic/TargetID.cpp
@@ -92,9 +92,8 @@ parseTargetIDWithFormatCheckingOnly(llvm::StringRef TargetID,
 if (Sign != '+' && Sign != '-')
   return std::nullopt;
 bool IsOn = Sign == '+';
-auto [Loc, Inserted] = FeatureMap->try_emplace(Feature, IsOn);
 // Each feature can only show up at most once in target ID.
-if (!Inserted)
+if (!FeatureMap->try_emplace(Feature, IsOn).second)
   return std::nullopt;
 Features = Splits.second;
   }

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Avoid repeated hash lookups (NFC) (PR #111227)

2024-10-05 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111227
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver] Avoid repeated hash lookups (NFC) (PR #111225)

2024-10-05 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111225
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Basic] Avoid repeated hash lookups (NFC) (PR #111228)

2024-10-04 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111228

None

>From 2e3d116613a7441b31036cf603d581db6e0afe9b Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 4 Oct 2024 08:00:11 -0700
Subject: [PATCH] [Basic] Avoid repeated hash lookups (NFC)

---
 clang/lib/Basic/TargetID.cpp | 13 ++---
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/clang/lib/Basic/TargetID.cpp b/clang/lib/Basic/TargetID.cpp
index fa1bfec2aacb9c..18f649c7137d7d 100644
--- a/clang/lib/Basic/TargetID.cpp
+++ b/clang/lib/Basic/TargetID.cpp
@@ -92,11 +92,10 @@ parseTargetIDWithFormatCheckingOnly(llvm::StringRef 
TargetID,
 if (Sign != '+' && Sign != '-')
   return std::nullopt;
 bool IsOn = Sign == '+';
-auto Loc = FeatureMap->find(Feature);
+auto [Loc, Inserted] = FeatureMap->try_emplace(Feature, IsOn);
 // Each feature can only show up at most once in target ID.
-if (Loc != FeatureMap->end())
+if (!Inserted)
   return std::nullopt;
-(*FeatureMap)[Feature] = IsOn;
 Features = Splits.second;
   }
   return Processor;
@@ -147,15 +146,15 @@ getConflictTargetIDCombination(const 
std::set &TargetIDs) {
   struct Info {
 llvm::StringRef TargetID;
 llvm::StringMap Features;
+Info(llvm::StringRef TargetID, const llvm::StringMap &Features)
+: TargetID(TargetID), Features(Features) {}
   };
   llvm::StringMap FeatureMap;
   for (auto &&ID : TargetIDs) {
 llvm::StringMap Features;
 llvm::StringRef Proc = *parseTargetIDWithFormatCheckingOnly(ID, &Features);
-auto Loc = FeatureMap.find(Proc);
-if (Loc == FeatureMap.end())
-  FeatureMap[Proc] = Info{ID, Features};
-else {
+auto [Loc, Inserted] = FeatureMap.try_emplace(Proc, ID, Features);
+if (!Inserted) {
   auto &ExistingFeatures = Loc->second.Features;
   if (llvm::any_of(Features, [&](auto &F) {
 return ExistingFeatures.count(F.first()) == 0;

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Avoid repeated hash lookups (NFC) (PR #111227)

2024-10-04 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111227

None

>From 364f8e5778d8dd587ee8b58104edd931c4b9d336 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 4 Oct 2024 07:59:14 -0700
Subject: [PATCH] [Sema] Avoid repeated hash lookups (NFC)

---
 clang/lib/Sema/SemaOpenMP.cpp | 18 ++
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index 8615da4b044a82..74ab52106e3234 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -1405,10 +1405,9 @@ const Expr *DSAStackTy::addUniqueAligned(const ValueDecl 
*D,
   assert(!isStackEmpty() && "Data sharing attributes stack is empty");
   D = getCanonicalDecl(D);
   SharingMapTy &StackElem = getTopOfStack();
-  auto It = StackElem.AlignedMap.find(D);
-  if (It == StackElem.AlignedMap.end()) {
+  auto [It, Inserted] = StackElem.AlignedMap.try_emplace(D, NewDE);
+  if (Inserted) {
 assert(NewDE && "Unexpected nullptr expr to be added into aligned map");
-StackElem.AlignedMap[D] = NewDE;
 return nullptr;
   }
   assert(It->second && "Unexpected nullptr expr in the aligned map");
@@ -1420,10 +1419,9 @@ const Expr *DSAStackTy::addUniqueNontemporal(const 
ValueDecl *D,
   assert(!isStackEmpty() && "Data sharing attributes stack is empty");
   D = getCanonicalDecl(D);
   SharingMapTy &StackElem = getTopOfStack();
-  auto It = StackElem.NontemporalMap.find(D);
-  if (It == StackElem.NontemporalMap.end()) {
+  auto [It, Inserted] = StackElem.NontemporalMap.try_emplace(D, NewDE);
+  if (Inserted) {
 assert(NewDE && "Unexpected nullptr expr to be added into aligned map");
-StackElem.NontemporalMap[D] = NewDE;
 return nullptr;
   }
   assert(It->second && "Unexpected nullptr expr in the aligned map");
@@ -21650,9 +21648,7 @@ SemaOpenMP::ActOnOpenMPDeclareReductionDirectiveStart(
 while (Filter.hasNext()) {
   auto *PrevDecl = cast(Filter.next());
   if (InCompoundScope) {
-auto I = UsedAsPrevious.find(PrevDecl);
-if (I == UsedAsPrevious.end())
-  UsedAsPrevious[PrevDecl] = false;
+UsedAsPrevious.try_emplace(PrevDecl, false);
 if (OMPDeclareReductionDecl *D = PrevDecl->getPrevDeclInScope())
   UsedAsPrevious[D] = true;
   }
@@ -21906,9 +21902,7 @@ SemaOpenMP::DeclGroupPtrTy 
SemaOpenMP::ActOnOpenMPDeclareMapperDirective(
 while (Filter.hasNext()) {
   auto *PrevDecl = cast(Filter.next());
   if (InCompoundScope) {
-auto I = UsedAsPrevious.find(PrevDecl);
-if (I == UsedAsPrevious.end())
-  UsedAsPrevious[PrevDecl] = false;
+UsedAsPrevious.try_emplace(PrevDecl, false);
 if (OMPDeclareMapperDecl *D = PrevDecl->getPrevDeclInScope())
   UsedAsPrevious[D] = true;
   }

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver] Avoid repeated hash lookups (NFC) (PR #111225)

2024-10-04 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111225

None

>From bd591d56e72a252b5dfa2304c8b719c60cfb1808 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 4 Oct 2024 08:00:49 -0700
Subject: [PATCH] [Driver] Avoid repeated hash lookups (NFC)

---
 clang/lib/Driver/Driver.cpp | 17 +
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index e9bf60d5e2ee46..2aaa52072b03d2 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -984,8 +984,9 @@ void Driver::CreateOffloadingDeviceToolChains(Compilation 
&C,
 } else
   TC = &getToolChain(C.getInputArgs(), TT);
 C.addOffloadDeviceToolChain(TC, Action::OFK_OpenMP);
-if (DerivedArchs.contains(TT.getTriple()))
-  KnownArchs[TC] = DerivedArchs[TT.getTriple()];
+auto It = DerivedArchs.find(TT.getTriple());
+if (It != DerivedArchs.end())
+  KnownArchs[TC] = It->second;
   }
 }
   } else if (C.getInputArgs().hasArg(options::OPT_fopenmp_targets_EQ)) {
@@ -3749,11 +3750,10 @@ class OffloadingActionBuilder final {
   void recordHostAction(Action *HostAction, const Arg *InputArg) {
 assert(HostAction && "Invalid host action");
 assert(InputArg && "Invalid input argument");
-auto Loc = HostActionToInputArgMap.find(HostAction);
-if (Loc == HostActionToInputArgMap.end())
-  HostActionToInputArgMap[HostAction] = InputArg;
-assert(HostActionToInputArgMap[HostAction] == InputArg &&
+auto Loc = HostActionToInputArgMap.try_emplace(HostAction, InputArg).first;
+assert(Loc->second == InputArg &&
"host action mapped to multiple input arguments");
+(void)Loc;
   }
 
   /// Generate an action that adds device dependences (if any) to a host 
action.
@@ -5581,8 +5581,9 @@ InputInfoList Driver::BuildJobsForActionNoCache(
 std::pair ActionTC = {
 OA->getHostDependence(),
 GetTriplePlusArchString(TC, BoundArch, TargetDeviceOffloadKind)};
-if (CachedResults.find(ActionTC) != CachedResults.end()) {
-  InputInfoList Inputs = CachedResults[ActionTC];
+auto It = CachedResults.find(ActionTC);
+if (It != CachedResults.end()) {
+  InputInfoList Inputs = It->second;
   Inputs.append(OffloadDependencesInputInfo);
   return Inputs;
 }

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [libclang] Avoid repeated hash lookups (NFC) (PR #111087)

2024-10-04 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111087
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [DependencyScanning] Avoid repeated hash lookups (NFC) (PR #111088)

2024-10-04 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111088
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [TableGen] Avoid repeated hash lookups (NFC) (PR #111089)

2024-10-04 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111089
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Avoid repeated hash lookups (NFC) (PR #111090)

2024-10-04 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/111090
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Avoid repeated hash lookups (NFC) (PR #111090)

2024-10-03 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111090

None

>From cd8fc9cd8e9ef757d129b3bbdddaeaf163d08d51 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Thu, 3 Oct 2024 08:47:32 -0700
Subject: [PATCH] [Sema] Avoid repeated hash lookups (NFC)

---
 clang/lib/Sema/SemaLambda.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/clang/lib/Sema/SemaLambda.cpp b/clang/lib/Sema/SemaLambda.cpp
index c2b35856111f3b..aeb20299b714a3 100644
--- a/clang/lib/Sema/SemaLambda.cpp
+++ b/clang/lib/Sema/SemaLambda.cpp
@@ -423,11 +423,11 @@ bool Sema::DiagnoseInvalidExplicitObjectParameterInLambda(
   // is an empty cast path for the method stored in the context (signalling 
that
   // we've already diagnosed it) and then just not building the call, but that
   // doesn't really seem any simpler than diagnosing it at the call site...
-  if (auto It = Context.LambdaCastPaths.find(Method);
-  It != Context.LambdaCastPaths.end())
+  auto [It, Inserted] = Context.LambdaCastPaths.try_emplace(Method);
+  if (!Inserted)
 return It->second.empty();
 
-  CXXCastPath &Path = Context.LambdaCastPaths[Method];
+  CXXCastPath &Path = It->second;
   CXXBasePaths Paths(/*FindAmbiguities=*/true, /*RecordPaths=*/true,
  /*DetectVirtual=*/false);
   if (!IsDerivedFrom(RD->getLocation(), ExplicitObjectParameterType, 
LambdaType,

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [TableGen] Avoid repeated hash lookups (NFC) (PR #111089)

2024-10-03 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111089

None

>From 14a0790867efd134b4ae0ceafeddb58e504929ec Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Thu, 3 Oct 2024 08:46:35 -0700
Subject: [PATCH] [TableGen] Avoid repeated hash lookups (NFC)

---
 clang/utils/TableGen/MveEmitter.cpp | 28 
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/clang/utils/TableGen/MveEmitter.cpp 
b/clang/utils/TableGen/MveEmitter.cpp
index 57e6353e60a141..915e914d6b9287 100644
--- a/clang/utils/TableGen/MveEmitter.cpp
+++ b/clang/utils/TableGen/MveEmitter.cpp
@@ -994,9 +994,10 @@ class EmitterBase {
   const VectorType *getVectorType(const ScalarType *ST, unsigned Lanes) {
 std::tuple key(ST->kind(),
ST->sizeInBits(), 
Lanes);
-if (VectorTypes.find(key) == VectorTypes.end())
-  VectorTypes[key] = std::make_unique(ST, Lanes);
-return VectorTypes[key].get();
+auto [It, Inserted] = VectorTypes.try_emplace(key);
+if (Inserted)
+  It->second = std::make_unique(ST, Lanes);
+return It->second.get();
   }
   const VectorType *getVectorType(const ScalarType *ST) {
 return getVectorType(ST, 128 / ST->sizeInBits());
@@ -1004,22 +1005,25 @@ class EmitterBase {
   const MultiVectorType *getMultiVectorType(unsigned Registers,
 const VectorType *VT) {
 std::pair key(VT->cNameBase(), Registers);
-if (MultiVectorTypes.find(key) == MultiVectorTypes.end())
-  MultiVectorTypes[key] = std::make_unique(Registers, VT);
-return MultiVectorTypes[key].get();
+auto [It, Inserted] = MultiVectorTypes.try_emplace(key);
+if (Inserted)
+  It->second = std::make_unique(Registers, VT);
+return It->second.get();
   }
   const PredicateType *getPredicateType(unsigned Lanes) {
 unsigned key = Lanes;
-if (PredicateTypes.find(key) == PredicateTypes.end())
-  PredicateTypes[key] = std::make_unique(Lanes);
-return PredicateTypes[key].get();
+auto [It, Inserted] = PredicateTypes.try_emplace(key);
+if (Inserted)
+  It->second = std::make_unique(Lanes);
+return It->second.get();
   }
   const PointerType *getPointerType(const Type *T, bool Const) {
 PointerType PT(T, Const);
 std::string key = PT.cName();
-if (PointerTypes.find(key) == PointerTypes.end())
-  PointerTypes[key] = std::make_unique(PT);
-return PointerTypes[key].get();
+auto [It, Inserted] = PointerTypes.try_emplace(key);
+if (Inserted)
+  It->second = std::make_unique(PT);
+return It->second.get();
   }
 
   // Methods to construct a type from various pieces of Tablegen. These are

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [DependencyScanning] Avoid repeated hash lookups (NFC) (PR #111088)

2024-10-03 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111088

None

>From 5e09bfd855a7ebee4dd07dc64bcdc157e89f6aa4 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Thu, 3 Oct 2024 08:47:01 -0700
Subject: [PATCH] [DependencyScanning] Avoid repeated hash lookups (NFC)

---
 clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp 
b/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
index 677f426590ab9e..77f9d07175c2c1 100644
--- a/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
+++ b/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
@@ -549,7 +549,7 @@ void ModuleDepCollectorPP::EndOfMainFile() {
 auto It = MDC.ModularDeps.find(M);
 // Only report direct dependencies that were successfully handled.
 if (It != MDC.ModularDeps.end())
-  MDC.Consumer.handleDirectModuleDependency(MDC.ModularDeps[M]->ID);
+  MDC.Consumer.handleDirectModuleDependency(It->second->ID);
   }
 
   for (auto &&I : MDC.FileDeps)

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [libclang] Avoid repeated hash lookups (NFC) (PR #111087)

2024-10-03 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/111087

None

>From df0ae6125e18bae6e90863300e12d094654b7b1f Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Thu, 3 Oct 2024 08:45:56 -0700
Subject: [PATCH] [libclang] Avoid repeated hash lookups (NFC)

---
 clang/tools/libclang/CXIndexDataConsumer.cpp | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/clang/tools/libclang/CXIndexDataConsumer.cpp 
b/clang/tools/libclang/CXIndexDataConsumer.cpp
index 8d364ed8876a12..ced94e13baf12e 100644
--- a/clang/tools/libclang/CXIndexDataConsumer.cpp
+++ b/clang/tools/libclang/CXIndexDataConsumer.cpp
@@ -952,18 +952,12 @@ void CXIndexDataConsumer::addContainerInMap(const 
DeclContext *DC,
   if (!DC)
 return;
 
-  ContainerMapTy::iterator I = ContainerMap.find(DC);
-  if (I == ContainerMap.end()) {
-if (container)
-  ContainerMap[DC] = container;
-return;
-  }
   // Allow changing the container of a previously seen DeclContext so we
   // can handle invalid user code, like a function re-definition.
   if (container)
-I->second = container;
+ContainerMap[DC] = container;
   else
-ContainerMap.erase(I);
+ContainerMap.erase(DC);
 }
 
 CXIdxClientEntity CXIndexDataConsumer::getClientEntity(const Decl *D) const {

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 3692995 - [CodeGen] Fix warnings

2024-10-03 Thread Kazu Hirata via cfe-commits

Author: Kazu Hirata
Date: 2024-10-03T10:47:26-07:00
New Revision: 36929955f5f0ff9b7ab1314dcbbb374d52f18a42

URL: 
https://github.com/llvm/llvm-project/commit/36929955f5f0ff9b7ab1314dcbbb374d52f18a42
DIFF: 
https://github.com/llvm/llvm-project/commit/36929955f5f0ff9b7ab1314dcbbb374d52f18a42.diff

LOG: [CodeGen] Fix warnings

This patch fixes:

  clang/lib/CodeGen/CGBuiltin.cpp:18677:11: error: unused variable
  'XVecTy1' [-Werror,-Wunused-variable]

  clang/lib/CodeGen/CGBuiltin.cpp:18678:11: error: unused variable
  'XVecTy2' [-Werror,-Wunused-variable]

Added: 


Modified: 
clang/lib/CodeGen/CGBuiltin.cpp

Removed: 




diff  --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index 01d80c1e10f8c8..43700ea9dd3cfd 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -18674,10 +18674,10 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned 
BuiltinID,
E->getArg(1)->getType()->hasFloatingRepresentation() &&
"cross operands must have a float representation");
 // make sure each vector has exactly 3 elements
-auto *XVecTy1 = E->getArg(0)->getType()->getAs();
-auto *XVecTy2 = E->getArg(1)->getType()->getAs();
-assert(XVecTy1->getNumElements() == 3 && XVecTy2->getNumElements() == 3 &&
-   "input vectors must have 3 elements each");
+assert(
+E->getArg(0)->getType()->getAs()->getNumElements() == 3 &&
+E->getArg(1)->getType()->getAs()->getNumElements() == 3 &&
+"input vectors must have 3 elements each");
 return Builder.CreateIntrinsic(
 /*ReturnType=*/Op0->getType(), 
CGM.getHLSLRuntime().getCrossIntrinsic(),
 ArrayRef{Op0, Op1}, nullptr, "hlsl.cross");



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Avoid repeated hash lookups (NFC) (PR #110951)

2024-10-03 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/110951
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Serialization] Avoid repeated hash lookups (NFC) (PR #110950)

2024-10-03 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/110950
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Analysis] Avoid repeated hash lookups (NFC) (PR #110949)

2024-10-03 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/110949
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [AST] Avoid repeated hash lookups (NFC) (PR #110947)

2024-10-03 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/110947
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Avoid repeated hash lookups (NFC) (PR #110951)

2024-10-02 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/110951

None

>From 6e37d7fac860490dd491afff51b6ec26c45b4594 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Wed, 2 Oct 2024 07:01:33 -0700
Subject: [PATCH] [Sema] Avoid repeated hash lookups (NFC)

---
 clang/lib/Sema/JumpDiagnostics.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/clang/lib/Sema/JumpDiagnostics.cpp 
b/clang/lib/Sema/JumpDiagnostics.cpp
index 8af36d5c24e3d2..00fdffca4e9ea9 100644
--- a/clang/lib/Sema/JumpDiagnostics.cpp
+++ b/clang/lib/Sema/JumpDiagnostics.cpp
@@ -761,8 +761,7 @@ void JumpScopeChecker::VerifyIndirectJumps() {
   if (CHECK_PERMISSIVE(!LabelAndGotoScopes.count(IG)))
 continue;
   unsigned IGScope = LabelAndGotoScopes[IG];
-  if (!JumpScopesMap.contains(IGScope))
-JumpScopesMap[IGScope] = IG;
+  JumpScopesMap.try_emplace(IGScope, IG);
 }
 JumpScopes.reserve(JumpScopesMap.size());
 for (auto &Pair : JumpScopesMap)

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Serialization] Avoid repeated hash lookups (NFC) (PR #110950)

2024-10-02 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/110950

None

>From 9be1bde51a7b095b285bdfb81123749b6364d524 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Wed, 2 Oct 2024 07:02:53 -0700
Subject: [PATCH] [Serialization] Avoid repeated hash lookups (NFC)

---
 clang/lib/Serialization/GlobalModuleIndex.cpp | 15 +++
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/clang/lib/Serialization/GlobalModuleIndex.cpp 
b/clang/lib/Serialization/GlobalModuleIndex.cpp
index 1163943c5dffaa..9c48712a0b3fbe 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:

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Analysis] Avoid repeated hash lookups (NFC) (PR #110949)

2024-10-02 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/110949

None

>From 0e4235061e3f668c0d1b86cc993eada3ca7efac7 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Wed, 2 Oct 2024 07:00:45 -0700
Subject: [PATCH] [Analysis] Avoid repeated hash lookups (NFC)

---
 clang/lib/Analysis/ExprMutationAnalyzer.cpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/clang/lib/Analysis/ExprMutationAnalyzer.cpp 
b/clang/lib/Analysis/ExprMutationAnalyzer.cpp
index 6d726ae44104ed..5a95ef36d05024 100644
--- a/clang/lib/Analysis/ExprMutationAnalyzer.cpp
+++ b/clang/lib/Analysis/ExprMutationAnalyzer.cpp
@@ -231,12 +231,11 @@ ExprMutationAnalyzer::Analyzer::findPointeeMutation(const 
Decl *Dec) {
 const Stmt *ExprMutationAnalyzer::Analyzer::findMutationMemoized(
 const Expr *Exp, llvm::ArrayRef Finders,
 Memoized::ResultMap &MemoizedResults) {
-  const auto Memoized = MemoizedResults.find(Exp);
-  if (Memoized != MemoizedResults.end())
+  auto [Memoized, Inserted] = MemoizedResults.try_emplace(Exp);
+  if (!Inserted)
 return Memoized->second;
 
   // Assume Exp is not mutated before analyzing Exp.
-  MemoizedResults[Exp] = nullptr;
   if (isUnevaluated(Exp))
 return nullptr;
 

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [AST] Avoid repeated hash lookups (NFC) (PR #110947)

2024-10-02 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/110947

None

>From 75622baf2f2bb12c46ca501f1f9b26afa0503e6b Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Wed, 2 Oct 2024 06:59:47 -0700
Subject: [PATCH] [AST] Avoid repeated hash lookups (NFC)

---
 clang/lib/AST/ASTContext.cpp | 2 --
 1 file changed, 2 deletions(-)

diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 735def67f7840f..a81429ad6a2380 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -14439,8 +14439,6 @@ bool ASTContext::useAbbreviatedThunkName(GlobalDecl 
VirtualMethodDecl,
 Mangler->mangleThunk(Method, Thunk, /* elideOverrideInfo */ false,
  mangledNameStream);
 
-  if (Thunks.find(ElidedName) == Thunks.end())
-Thunks[ElidedName] = {};
   Thunks[ElidedName].push_back(std::string(MangledName));
 }
   }

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 87a2413 - [AST] Fix a warning

2024-10-02 Thread Kazu Hirata via cfe-commits

Author: Kazu Hirata
Date: 2024-10-02T12:21:23-07:00
New Revision: 87a24136140496e30aa867074bdee1be1f3b3294

URL: 
https://github.com/llvm/llvm-project/commit/87a24136140496e30aa867074bdee1be1f3b3294
DIFF: 
https://github.com/llvm/llvm-project/commit/87a24136140496e30aa867074bdee1be1f3b3294.diff

LOG: [AST] Fix a warning

This patch fixes:

  clang/lib/AST/MicrosoftMangle.cpp:1008:11: error: enumeration value
  'S_Float8E8M0FNU' not handled in switch [-Werror,-Wswitch]

Added: 


Modified: 
clang/lib/AST/MicrosoftMangle.cpp

Removed: 




diff  --git a/clang/lib/AST/MicrosoftMangle.cpp 
b/clang/lib/AST/MicrosoftMangle.cpp
index e4c8663c134fda..4ccf3f76bf0ce2 100644
--- a/clang/lib/AST/MicrosoftMangle.cpp
+++ b/clang/lib/AST/MicrosoftMangle.cpp
@@ -1024,6 +1024,7 @@ void MicrosoftCXXNameMangler::mangleFloat(llvm::APFloat 
Number) {
   case APFloat::S_Float8E4M3B11FNUZ:
   case APFloat::S_Float8E3M4:
   case APFloat::S_FloatTF32:
+  case APFloat::S_Float8E8M0FNU:
   case APFloat::S_Float6E3M2FN:
   case APFloat::S_Float6E2M3FN:
   case APFloat::S_Float4E2M1FN:



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][TableGen] Change NeonEmitter to use const Record * (PR #110597)

2024-10-01 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata approved this pull request.

LGTM.  Thanks!

https://github.com/llvm/llvm-project/pull/110597
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][TableGen] Change OptionDoc Emitter to use const Record * (PR #110592)

2024-10-01 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata approved this pull request.

LGTM.  Thanks!

https://github.com/llvm/llvm-project/pull/110592
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][TableGen] Change SACheckersEmitter to use const Record * (PR #110596)

2024-10-01 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata approved this pull request.

LGTM.  Thanks!

https://github.com/llvm/llvm-project/pull/110596
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][TableGen] Change NeonEmitter to use const Record * (PR #110597)

2024-10-01 Thread Kazu Hirata via cfe-commits


@@ -1161,11 +1161,9 @@ void SVEEmitter::createIntrinsic(
   uint64_t Merge = R->getValueAsInt("Merge");
   StringRef MergeSuffix = R->getValueAsString("MergeSuffix");
   uint64_t MemEltType = R->getValueAsInt("MemEltType");
-  std::vector FlagsList = R->getValueAsListOfDefs("Flags");
-  std::vector ImmCheckList = R->getValueAsListOfDefs("ImmChecks");
 
   int64_t Flags = 0;
-  for (auto FlagRec : FlagsList)
+  for (const record *FlagRec : R->getValueAsListOfConstDefs("Flags"))

kazutakahirata wrote:

Do you mean this?
```suggestion
  for (const Record *FlagRec : R->getValueAsListOfConstDefs("Flags"))
```

https://github.com/llvm/llvm-project/pull/110597
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][TableGen] Change NeonEmitter to use const Record * (PR #110597)

2024-10-01 Thread Kazu Hirata via cfe-commits


@@ -1195,10 +1193,10 @@ void SVEEmitter::createIntrinsic(
   for (auto TS : TypeSpecs) {
 // Collate a list of range/option checks for the immediates.
 SmallVector ImmChecks;
-for (auto *R : ImmCheckList) {
-  int64_t ArgIdx = R->getValueAsInt("ImmArgIdx");
-  int64_t EltSizeArgIdx = R->getValueAsInt("TypeContextArgIdx");
-  int64_t Kind = R->getValueAsDef("Kind")->getValueAsInt("Value");
+for (auto ImmR : R->getValueAsListOfConstDefs("ImmChecks")) {

kazutakahirata wrote:

Likewise:


```suggestion
for (const Record *ImmR : R->getValueAsListOfConstDefs("ImmChecks")) {
```

https://github.com/llvm/llvm-project/pull/110597
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][TableGen] Change NeonEmitter to use const Record * (PR #110597)

2024-10-01 Thread Kazu Hirata via cfe-commits


@@ -1161,11 +1161,9 @@ void SVEEmitter::createIntrinsic(
   uint64_t Merge = R->getValueAsInt("Merge");
   StringRef MergeSuffix = R->getValueAsString("MergeSuffix");
   uint64_t MemEltType = R->getValueAsInt("MemEltType");
-  std::vector FlagsList = R->getValueAsListOfDefs("Flags");
-  std::vector ImmCheckList = R->getValueAsListOfDefs("ImmChecks");
 
   int64_t Flags = 0;
-  for (auto FlagRec : FlagsList)
+  for (auto FlagRec : R->getValueAsListOfConstDefs("Flags"))

kazutakahirata wrote:

In `NeonEmitter.cpp`, you are replacing `const auto *` with `const Record *`.  
You might want to be consistent here with:

```suggestion
  for (const Record *FlagRec : R->getValueAsListOfConstDefs("Flags"))
```

The LLVM coding conventions are not very prescriptive regarding `auto`, so I 
tend to use the actual type name if it's short.

https://github.com/llvm/llvm-project/pull/110597
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Use std::optional::value_or (NFC) (PR #109894)

2024-09-26 Thread Kazu Hirata via cfe-commits

kazutakahirata wrote:

> Next time please provide a better summary for your PR. This is super 
> important for downstream folks debugging build breaks. In general this is 
> important for reviews to compare what they expect with the actual diff.
> 
> 
> 
> In this case something like "replace the use of conditional operator on 
> std::optional w/ value_or" would have been sufficient. 
> 
> 
> 
> Thank you

Ack.

https://github.com/llvm/llvm-project/pull/109894
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 639a0af - Revert "Deprecate the `-fbasic-block-sections=labels` option. (#107494)"

2024-09-25 Thread Kazu Hirata via cfe-commits

Author: Kazu Hirata
Date: 2024-09-25T12:34:43-07:00
New Revision: 639a0afa9955a8613902e46e168767bc05c46cdd

URL: 
https://github.com/llvm/llvm-project/commit/639a0afa9955a8613902e46e168767bc05c46cdd
DIFF: 
https://github.com/llvm/llvm-project/commit/639a0afa9955a8613902e46e168767bc05c46cdd.diff

LOG: Revert "Deprecate the `-fbasic-block-sections=labels` option. (#107494)"

This reverts commit 1911a50fae8a441b445eb835b98950710d28fc88.

Several bots are failing:

https://lab.llvm.org/buildbot/#/builders/190/builds/6519
https://lab.llvm.org/buildbot/#/builders/3/builds/5248
https://lab.llvm.org/buildbot/#/builders/18/builds/4463

Added: 
llvm/test/CodeGen/X86/basic-block-labels-mir-parse.mir
llvm/test/CodeGen/X86/basic-block-sections-labels-empty-block.ll
llvm/test/CodeGen/X86/basic-block-sections-labels-empty-function.ll
llvm/test/CodeGen/X86/basic-block-sections-labels-pgo-features.ll

Modified: 
clang/docs/UsersManual.rst
clang/include/clang/Basic/CodeGenOptions.h
clang/include/clang/Driver/Options.td
clang/lib/CodeGen/BackendUtil.cpp
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/fbasic-block-sections.c
llvm/docs/CommandGuide/llvm-objdump.rst
llvm/docs/Extensions.rst
llvm/include/llvm/CodeGen/MachineFunction.h
llvm/include/llvm/Target/TargetOptions.h
llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/lib/CodeGen/BasicBlockSections.cpp
llvm/lib/CodeGen/CommandFlags.cpp
llvm/lib/CodeGen/MIRParser/MIParser.cpp
llvm/lib/CodeGen/MIRParser/MIRParser.cpp
llvm/lib/CodeGen/MachineFunction.cpp
llvm/test/CodeGen/X86/basic-block-address-map-function-sections.ll
llvm/test/CodeGen/X86/basic-block-address-map.ll
llvm/test/CodeGen/X86/basic-block-sections-mir-print.ll

Removed: 
llvm/test/CodeGen/X86/basic-block-address-map-empty-block.ll
llvm/test/CodeGen/X86/basic-block-address-map-empty-function.ll
llvm/test/CodeGen/X86/basic-block-address-map-mir-parse.mir
llvm/test/CodeGen/X86/basic-block-address-map-pgo-features.ll



diff  --git a/clang/docs/UsersManual.rst b/clang/docs/UsersManual.rst
index 4f03388bc87bd0..57d78f867bab6e 100644
--- a/clang/docs/UsersManual.rst
+++ b/clang/docs/UsersManual.rst
@@ -2369,16 +2369,14 @@ are listed below.
  $ cd $P/bar && clang -c -funique-internal-linkage-names name_conflict.c
  $ cd $P && clang foo/name_conflict.o && bar/name_conflict.o
 
-.. option:: -f[no]-basic-block-address-map:
-  Emits a ``SHT_LLVM_BB_ADDR_MAP`` section which includes address offsets for 
each
-  basic block in the program, relative to the parent function address.
-
-
-.. option:: -fbasic-block-sections=[all, list=, none]
+.. option:: -fbasic-block-sections=[labels, all, list=, none]
 
   Controls how Clang emits text sections for basic blocks. With values ``all``
   and ``list=``, each basic block or a subset of basic blocks can be 
placed
-  in its own unique section.
+  in its own unique section. With the "labels" value, normal text sections are
+  emitted, but a ``.bb_addr_map`` section is emitted which includes address
+  offsets for each basic block in the program, relative to the parent function
+  address.
 
   With the ``list=`` option, a file containing the subset of basic blocks
   that need to placed in unique sections can be specified.  The format of the

diff  --git a/clang/include/clang/Basic/CodeGenOptions.h 
b/clang/include/clang/Basic/CodeGenOptions.h
index 814d4d4c99e575..f2a707a8ba8d76 100644
--- a/clang/include/clang/Basic/CodeGenOptions.h
+++ b/clang/include/clang/Basic/CodeGenOptions.h
@@ -107,13 +107,18 @@ class CodeGenOptions : public CodeGenOptionsBase {
 
   // This field stores one of the allowed values for the option
   // -fbasic-block-sections=.  The allowed values with this option are:
-  // {"all", "list=", "none"}.
+  // {"labels", "all", "list=", "none"}.
   //
+  // "labels":  Only generate basic block symbols (labels) for all basic
+  //blocks, do not generate unique sections for basic blocks.
+  //Use the machine basic block id in the symbol name to
+  //associate profile info from virtual address to machine
+  //basic block.
   // "all" :Generate basic block sections for all basic blocks.
   // "list=": Generate basic block sections for a subset of basic blocks.
   //The functions and the machine basic block ids are specified
   //in the file.
-  // "none":Disable sections for basic blocks.
+  // "none":Disable sections/labels for basic blocks.
   std::string BBSections;
 
   // If set, override the default value of MCAsmInfo::BinutilsVersion. If

diff  --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index c22b07e9f8a6cb..23bd686a85f526 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/

[clang] [clang] Use std::optional::value_or (NFC) (PR #109894)

2024-09-24 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109894
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Use std::optional::value_or (NFC) (PR #109894)

2024-09-24 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata updated 
https://github.com/llvm/llvm-project/pull/109894

>From 7ea89a1dcdee890d3d69f59ea4e31b084d32e0d7 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Tue, 24 Sep 2024 14:34:49 -0700
Subject: [PATCH 1/2] [clang] Use std::optional::value_or (NFC)

---
 clang/include/clang/AST/PropertiesBase.td   | 2 +-
 clang/include/clang/Basic/FileManager.h | 2 +-
 clang/lib/APINotes/APINotesYAMLCompiler.cpp | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/clang/include/clang/AST/PropertiesBase.td 
b/clang/include/clang/AST/PropertiesBase.td
index 9b934b20cf2559..3057669e3758b5 100644
--- a/clang/include/clang/AST/PropertiesBase.td
+++ b/clang/include/clang/AST/PropertiesBase.td
@@ -39,7 +39,7 @@ class EnumPropertyType : 
PropertyType {}
 /// Supports optional values by using the null representation.
 class RefPropertyType : PropertyType {
   let PackOptional =
-"value ? *value : nullptr";
+"value.value_or(nullptr)";
   let UnpackOptional =
 "value ? std::optional<" # CXXName # ">(value) : std::nullopt";
 }
diff --git a/clang/include/clang/Basic/FileManager.h 
b/clang/include/clang/Basic/FileManager.h
index 527bbef24793ee..74029a91d1a6d0 100644
--- a/clang/include/clang/Basic/FileManager.h
+++ b/clang/include/clang/Basic/FileManager.h
@@ -293,7 +293,7 @@ class FileManager : public RefCountedBase {
bool RequiresNullTerminator = true,
std::optional MaybeLimit = std::nullopt) const {
 return getBufferForFileImpl(Filename,
-/*FileSize=*/(MaybeLimit ? *MaybeLimit : -1),
+/*FileSize=*/MaybeLimit.value_or(-1),
 isVolatile, RequiresNullTerminator);
   }
 
diff --git a/clang/lib/APINotes/APINotesYAMLCompiler.cpp 
b/clang/lib/APINotes/APINotesYAMLCompiler.cpp
index 16fd59244086fd..f72a1d65b5456f 100644
--- a/clang/lib/APINotes/APINotesYAMLCompiler.cpp
+++ b/clang/lib/APINotes/APINotesYAMLCompiler.cpp
@@ -757,8 +757,8 @@ class YAMLConverter {
   OutInfo.addTypeInfo(idx++, N);
 audited = Nullability.size() > 0 || ReturnNullability;
 if (audited)
-  OutInfo.addTypeInfo(0, ReturnNullability ? *ReturnNullability
-   : NullabilityKind::NonNull);
+  OutInfo.addTypeInfo(0,
+  
ReturnNullability.value_or(NullabilityKind::NonNull));
 if (!audited)
   return;
 OutInfo.NullabilityAudited = audited;

>From 19a542e7fc8896f126ec0345ffe7a36e6ac57269 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Tue, 24 Sep 2024 21:51:58 -0700
Subject: [PATCH 2/2] Trigger build


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Use std::optional::value_or (NFC) (PR #109894)

2024-09-24 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/109894

None

>From 7ea89a1dcdee890d3d69f59ea4e31b084d32e0d7 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Tue, 24 Sep 2024 14:34:49 -0700
Subject: [PATCH] [clang] Use std::optional::value_or (NFC)

---
 clang/include/clang/AST/PropertiesBase.td   | 2 +-
 clang/include/clang/Basic/FileManager.h | 2 +-
 clang/lib/APINotes/APINotesYAMLCompiler.cpp | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/clang/include/clang/AST/PropertiesBase.td 
b/clang/include/clang/AST/PropertiesBase.td
index 9b934b20cf2559..3057669e3758b5 100644
--- a/clang/include/clang/AST/PropertiesBase.td
+++ b/clang/include/clang/AST/PropertiesBase.td
@@ -39,7 +39,7 @@ class EnumPropertyType : 
PropertyType {}
 /// Supports optional values by using the null representation.
 class RefPropertyType : PropertyType {
   let PackOptional =
-"value ? *value : nullptr";
+"value.value_or(nullptr)";
   let UnpackOptional =
 "value ? std::optional<" # CXXName # ">(value) : std::nullopt";
 }
diff --git a/clang/include/clang/Basic/FileManager.h 
b/clang/include/clang/Basic/FileManager.h
index 527bbef24793ee..74029a91d1a6d0 100644
--- a/clang/include/clang/Basic/FileManager.h
+++ b/clang/include/clang/Basic/FileManager.h
@@ -293,7 +293,7 @@ class FileManager : public RefCountedBase {
bool RequiresNullTerminator = true,
std::optional MaybeLimit = std::nullopt) const {
 return getBufferForFileImpl(Filename,
-/*FileSize=*/(MaybeLimit ? *MaybeLimit : -1),
+/*FileSize=*/MaybeLimit.value_or(-1),
 isVolatile, RequiresNullTerminator);
   }
 
diff --git a/clang/lib/APINotes/APINotesYAMLCompiler.cpp 
b/clang/lib/APINotes/APINotesYAMLCompiler.cpp
index 16fd59244086fd..f72a1d65b5456f 100644
--- a/clang/lib/APINotes/APINotesYAMLCompiler.cpp
+++ b/clang/lib/APINotes/APINotesYAMLCompiler.cpp
@@ -757,8 +757,8 @@ class YAMLConverter {
   OutInfo.addTypeInfo(idx++, N);
 audited = Nullability.size() > 0 || ReturnNullability;
 if (audited)
-  OutInfo.addTypeInfo(0, ReturnNullability ? *ReturnNullability
-   : NullabilityKind::NonNull);
+  OutInfo.addTypeInfo(0,
+  
ReturnNullability.value_or(NullabilityKind::NonNull));
 if (!audited)
   return;
 OutInfo.NullabilityAudited = audited;

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Rewrite] Use SmallSetVector (NFC) (PR #109746)

2024-09-24 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109746
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 64e7cb2 - [Rewrite] Use auto (NFC)

2024-09-23 Thread Kazu Hirata via cfe-commits

Author: Kazu Hirata
Date: 2024-09-23T19:47:41-07:00
New Revision: 64e7cb266e54e689791ad499965ddb0f8a1a2262

URL: 
https://github.com/llvm/llvm-project/commit/64e7cb266e54e689791ad499965ddb0f8a1a2262
DIFF: 
https://github.com/llvm/llvm-project/commit/64e7cb266e54e689791ad499965ddb0f8a1a2262.diff

LOG: [Rewrite] Use auto (NFC)

I'm planning to change the type of BlockByCopyDecls and
BlockByRefDecls to SetVector.  Declaring these iterators with auto
makes it easier to migrate to the new type.

Added: 


Modified: 
clang/lib/Frontend/Rewrite/RewriteObjC.cpp

Removed: 




diff  --git a/clang/lib/Frontend/Rewrite/RewriteObjC.cpp 
b/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
index ac5baf72a65c90..a1e792bf772ba2 100644
--- a/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
+++ b/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
@@ -3292,8 +3292,8 @@ std::string RewriteObjC::SynthesizeBlockFunc(BlockExpr 
*CE, int i,
 
   // Create local declarations to avoid rewriting all closure decl ref exprs.
   // First, emit a declaration for all "by ref" decls.
-  for (SmallVectorImpl::iterator I = BlockByRefDecls.begin(),
-   E = BlockByRefDecls.end(); I != E; ++I) {
+  for (auto I = BlockByRefDecls.begin(), E = BlockByRefDecls.end(); I != E;
+   ++I) {
 S += "  ";
 std::string Name = (*I)->getNameAsString();
 std::string TypeString;
@@ -3303,8 +3303,8 @@ std::string RewriteObjC::SynthesizeBlockFunc(BlockExpr 
*CE, int i,
 S += Name + " = __cself->" + (*I)->getNameAsString() + "; // bound by 
ref\n";
   }
   // Next, emit a declaration for all "by copy" declarations.
-  for (SmallVectorImpl::iterator I = BlockByCopyDecls.begin(),
-   E = BlockByCopyDecls.end(); I != E; ++I) {
+  for (auto I = BlockByCopyDecls.begin(), E = BlockByCopyDecls.end(); I != E;
+   ++I) {
 S += "  ";
 // Handle nested closure invocation. For example:
 //
@@ -3400,8 +3400,8 @@ std::string RewriteObjC::SynthesizeBlockImpl(BlockExpr 
*CE, std::string Tag,
 
   if (BlockDeclRefs.size()) {
 // Output all "by copy" declarations.
-for (SmallVectorImpl::iterator I = BlockByCopyDecls.begin(),
- E = BlockByCopyDecls.end(); I != E; ++I) {
+for (auto I = BlockByCopyDecls.begin(), E = BlockByCopyDecls.end(); I != E;
+ ++I) {
   S += "  ";
   std::string FieldName = (*I)->getNameAsString();
   std::string ArgName = "_" + FieldName;
@@ -3429,8 +3429,8 @@ std::string RewriteObjC::SynthesizeBlockImpl(BlockExpr 
*CE, std::string Tag,
   S += FieldName + ";\n";
 }
 // Output all "by ref" declarations.
-for (SmallVectorImpl::iterator I = BlockByRefDecls.begin(),
- E = BlockByRefDecls.end(); I != E; ++I) {
+for (auto I = BlockByRefDecls.begin(), E = BlockByRefDecls.end(); I != E;
+ ++I) {
   S += "  ";
   std::string FieldName = (*I)->getNameAsString();
   std::string ArgName = "_" + FieldName;
@@ -3448,8 +3448,8 @@ std::string RewriteObjC::SynthesizeBlockImpl(BlockExpr 
*CE, std::string Tag,
 Constructor += ", int flags=0)";
 // Initialize all "by copy" arguments.
 bool firsTime = true;
-for (SmallVectorImpl::iterator I = BlockByCopyDecls.begin(),
- E = BlockByCopyDecls.end(); I != E; ++I) {
+for (auto I = BlockByCopyDecls.begin(), E = BlockByCopyDecls.end(); I != E;
+ ++I) {
   std::string Name = (*I)->getNameAsString();
 if (firsTime) {
   Constructor += " : ";
@@ -3463,8 +3463,8 @@ std::string RewriteObjC::SynthesizeBlockImpl(BlockExpr 
*CE, std::string Tag,
   Constructor += Name + "(_" + Name + ")";
 }
 // Initialize all "by ref" arguments.
-for (SmallVectorImpl::iterator I = BlockByRefDecls.begin(),
- E = BlockByRefDecls.end(); I != E; ++I) {
+for (auto I = BlockByRefDecls.begin(), E = BlockByRefDecls.end(); I != E;
+ ++I) {
   std::string Name = (*I)->getNameAsString();
   if (firsTime) {
 Constructor += " : ";
@@ -4439,8 +4439,8 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
   if (BlockDeclRefs.size()) {
 Expr *Exp;
 // Output all "by copy" declarations.
-for (SmallVectorImpl::iterator I = BlockByCopyDecls.begin(),
- E = BlockByCopyDecls.end(); I != E; ++I) {
+for (auto I = BlockByCopyDecls.begin(), E = BlockByCopyDecls.end(); I != E;
+ ++I) {
   if (isObjCType((*I)->getType())) {
 // FIXME: Conform to ABI ([[obj retain] autorelease]).
 FD = SynthBlockInitFunctionDecl((*I)->getName());
@@ -4476,8 +4476,8 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
   InitExprs.push_back(Exp);
 }
 // Output all "by ref" declarations.
-for (SmallVectorImpl::iterator I = BlockByRefDecls.begin(),
- E = BlockByRefDecls.end(); I != E; ++I) {
+for (auto I = BlockByRefDecls.begin(), E = BlockByRefDecls.end(); I != E;
+ ++I) {
   ValueDecl *ND = (*I);
 

[clang] [AST] Avoid repeated hash lookups (NFC) (PR #109603)

2024-09-23 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109603
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Rewrite] Avoid repeated hash lookups (NFC) (PR #109605)

2024-09-23 Thread Kazu Hirata via cfe-commits

kazutakahirata wrote:

> LGTM, but it would probably make sense to make BlockByCopyDecls a SetVector, 
> instead of having separate vector and set.
> 
> Edit: Also worth noting that this pattern also exists here: 
> https://github.com/llvm/llvm-project/blob/50ce6d0114f8abd4b5580d2c277525eebdf25874/clang/lib/Frontend/Rewrite/RewriteObjC.cpp#L3556C42-L3556C61

Ack.  There are quite a few places within LLVM where we see 
`Map.try_emplace(Key, Vector.size())`.  I bet many of those can be converted to 
`MapVector`.

https://github.com/llvm/llvm-project/pull/109605
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Rewrite] Avoid repeated hash lookups (NFC) (PR #109605)

2024-09-23 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109605
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Rewrite] Avoid repeated hash lookups (NFC) (PR #109605)

2024-09-22 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/109605

None

>From 50ce6d0114f8abd4b5580d2c277525eebdf25874 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Sun, 22 Sep 2024 08:05:27 -0700
Subject: [PATCH] [Rewrite] Avoid repeated hash lookups (NFC)

---
 clang/lib/Frontend/Rewrite/RewriteObjC.cpp | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/clang/lib/Frontend/Rewrite/RewriteObjC.cpp 
b/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
index 180a0125023ee7..ac5baf72a65c90 100644
--- a/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
+++ b/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
@@ -4358,21 +4358,21 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
 for (unsigned i = 0; i < InnerBlockDeclRefs.size(); i++) {
   DeclRefExpr *Exp = InnerBlockDeclRefs[i];
   ValueDecl *VD = Exp->getDecl();
-  if (!VD->hasAttr() && !BlockByCopyDeclsPtrSet.count(VD)) {
+  if (!VD->hasAttr() &&
+  BlockByCopyDeclsPtrSet.insert(VD).second) {
 // We need to save the copied-in variables in nested
 // blocks because it is needed at the end for some of the API
 // generations. See SynthesizeBlockLiterals routine.
 InnerDeclRefs.push_back(Exp);
 countOfInnerDecls++;
 BlockDeclRefs.push_back(Exp);
-BlockByCopyDeclsPtrSet.insert(VD);
 BlockByCopyDecls.push_back(VD);
   }
-  if (VD->hasAttr() && !BlockByRefDeclsPtrSet.count(VD)) {
+  if (VD->hasAttr() &&
+  BlockByRefDeclsPtrSet.insert(VD).second) {
 InnerDeclRefs.push_back(Exp);
 countOfInnerDecls++;
 BlockDeclRefs.push_back(Exp);
-BlockByRefDeclsPtrSet.insert(VD);
 BlockByRefDecls.push_back(VD);
   }
 }

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [AST] Avoid repeated hash lookups (NFC) (PR #109603)

2024-09-22 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/109603

None

>From 6d29a8a0d011a13a9ac17fa4bf53523cfc70992d Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Sun, 22 Sep 2024 07:54:30 -0700
Subject: [PATCH] [AST] Avoid repeated hash lookups (NFC)

---
 clang/lib/AST/ASTContext.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 8bd5abf2bf9643..fd8aa8de79b49f 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -12587,8 +12587,7 @@ void ASTContext::forEachMultiversionedFunctionVersion(
FD->getDeclContext()->getRedeclContext()->lookup(FD->getDeclName())) {
 FunctionDecl *CurFD = CurDecl->getAsFunction()->getMostRecentDecl();
 if (CurFD && hasSameType(CurFD->getType(), FD->getType()) &&
-!SeenDecls.contains(CurFD)) {
-  SeenDecls.insert(CurFD);
+SeenDecls.insert(CurFD).second) {
   Pred(CurFD);
 }
   }

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Frontend] Teach LoadFromASTFile to take FileName by StringRef (NFC) (PR #109583)

2024-09-22 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/109583

Without this patch, several callers of LoadFromASTFile construct an
instance of std::string to be passed as FileName, only to be converted
back to StringRef when LoadFromASTFile calls ReadAST.

This patch changes the type of FileName to StringRef and updates the
callers.


>From 5818c6dbd5a14d26a5d80652b90e14aec1ca1103 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Sat, 1 Jun 2024 12:54:44 -0700
Subject: [PATCH] [Frontend] Teach LoadFromASTFile to take FileName by
 StringRef (NFC)

Without this patch, several callers of LoadFromASTFile construct an
instance of std::string to be passed as FileName, only to be converted
back to StringRef when LoadFromASTFile calls ReadAST.

This patch changes the type of FileName to StringRef and updates the
callers.
---
 clang/include/clang/Frontend/ASTUnit.h   |  4 ++--
 clang/lib/CrossTU/CrossTranslationUnit.cpp   |  6 +++---
 clang/lib/Frontend/ASTUnit.cpp   |  2 +-
 clang/lib/Frontend/FrontendAction.cpp| 10 +-
 clang/tools/c-index-test/core_main.cpp   | 12 ++--
 .../tools/clang-extdef-mapping/ClangExtDefMapGen.cpp |  2 +-
 clang/unittests/Frontend/ASTUnitTest.cpp |  4 ++--
 7 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/clang/include/clang/Frontend/ASTUnit.h 
b/clang/include/clang/Frontend/ASTUnit.h
index 080844893c13c9..8cefae8587aa34 100644
--- a/clang/include/clang/Frontend/ASTUnit.h
+++ b/clang/include/clang/Frontend/ASTUnit.h
@@ -692,8 +692,8 @@ class ASTUnit {
   ///
   /// \returns - The initialized ASTUnit or null if the AST failed to load.
   static std::unique_ptr
-  LoadFromASTFile(const std::string &Filename,
-  const PCHContainerReader &PCHContainerRdr, WhatToLoad ToLoad,
+  LoadFromASTFile(StringRef Filename, const PCHContainerReader 
&PCHContainerRdr,
+  WhatToLoad ToLoad,
   IntrusiveRefCntPtr Diags,
   const FileSystemOptions &FileSystemOpts,
   std::shared_ptr HSOpts,
diff --git a/clang/lib/CrossTU/CrossTranslationUnit.cpp 
b/clang/lib/CrossTU/CrossTranslationUnit.cpp
index 986470042bd83c..9faf2a8a173411 100644
--- a/clang/lib/CrossTU/CrossTranslationUnit.cpp
+++ b/clang/lib/CrossTU/CrossTranslationUnit.cpp
@@ -566,9 +566,9 @@ 
CrossTranslationUnitContext::ASTLoader::loadFromDump(StringRef ASTDumpPath) {
   IntrusiveRefCntPtr Diags(
   new DiagnosticsEngine(DiagID, &*DiagOpts, DiagClient));
   return ASTUnit::LoadFromASTFile(
-  std::string(ASTDumpPath.str()),
-  CI.getPCHContainerOperations()->getRawReader(), ASTUnit::LoadEverything,
-  Diags, CI.getFileSystemOpts(), CI.getHeaderSearchOptsPtr());
+  ASTDumpPath, CI.getPCHContainerOperations()->getRawReader(),
+  ASTUnit::LoadEverything, Diags, CI.getFileSystemOpts(),
+  CI.getHeaderSearchOptsPtr());
 }
 
 /// Load the AST from a source-file, which is supposed to be located inside the
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp
index 84e273a3949ef0..93836ec5402faa 100644
--- a/clang/lib/Frontend/ASTUnit.cpp
+++ b/clang/lib/Frontend/ASTUnit.cpp
@@ -802,7 +802,7 @@ void 
ASTUnit::ConfigureDiags(IntrusiveRefCntPtr Diags,
 }
 
 std::unique_ptr ASTUnit::LoadFromASTFile(
-const std::string &Filename, const PCHContainerReader &PCHContainerRdr,
+StringRef Filename, const PCHContainerReader &PCHContainerRdr,
 WhatToLoad ToLoad, IntrusiveRefCntPtr Diags,
 const FileSystemOptions &FileSystemOpts,
 std::shared_ptr HSOpts,
diff --git a/clang/lib/Frontend/FrontendAction.cpp 
b/clang/lib/Frontend/FrontendAction.cpp
index a9c45e525c696c..81eea9c4c4dc58 100644
--- a/clang/lib/Frontend/FrontendAction.cpp
+++ b/clang/lib/Frontend/FrontendAction.cpp
@@ -625,8 +625,8 @@ bool FrontendAction::BeginSourceFile(CompilerInstance &CI,
 StringRef InputFile = Input.getFile();
 
 std::unique_ptr AST = ASTUnit::LoadFromASTFile(
-std::string(InputFile), CI.getPCHContainerReader(),
-ASTUnit::LoadPreprocessorOnly, ASTDiags, CI.getFileSystemOpts(),
+InputFile, CI.getPCHContainerReader(), ASTUnit::LoadPreprocessorOnly,
+ASTDiags, CI.getFileSystemOpts(),
 /*HeaderSearchOptions=*/nullptr);
 if (!AST)
   return false;
@@ -693,9 +693,9 @@ bool FrontendAction::BeginSourceFile(CompilerInstance &CI,
 StringRef InputFile = Input.getFile();
 
 std::unique_ptr AST = ASTUnit::LoadFromASTFile(
-std::string(InputFile), CI.getPCHContainerReader(),
-ASTUnit::LoadEverything, Diags, CI.getFileSystemOpts(),
-CI.getHeaderSearchOptsPtr(), CI.getLangOptsPtr());
+InputFile, CI.getPCHContainerReader(), ASTUnit::LoadEverything, Diags,
+CI.getFileSystemOpts(), CI.getHeaderSearchOptsPtr(),
+CI.getLangOptsPtr());
 
 if (!AST)
   return false;
diff --git a/clang/tools/c-index-test/co

[clang] 7a4b320 - [Rewrite] clang-format RewriteObjC.cpp (NFC)

2024-09-22 Thread Kazu Hirata via cfe-commits

Author: Kazu Hirata
Date: 2024-09-22T08:03:15-07:00
New Revision: 7a4b320931a139514b2fcdf682cb4ab2abb6331d

URL: 
https://github.com/llvm/llvm-project/commit/7a4b320931a139514b2fcdf682cb4ab2abb6331d
DIFF: 
https://github.com/llvm/llvm-project/commit/7a4b320931a139514b2fcdf682cb4ab2abb6331d.diff

LOG: [Rewrite] clang-format RewriteObjC.cpp (NFC)

I'm going to touch this area in a subsequent patch.

Added: 


Modified: 
clang/lib/Frontend/Rewrite/RewriteObjC.cpp

Removed: 




diff  --git a/clang/lib/Frontend/Rewrite/RewriteObjC.cpp 
b/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
index f3afb3e5e83acd..180a0125023ee7 100644
--- a/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
+++ b/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
@@ -4359,16 +4359,18 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
   DeclRefExpr *Exp = InnerBlockDeclRefs[i];
   ValueDecl *VD = Exp->getDecl();
   if (!VD->hasAttr() && !BlockByCopyDeclsPtrSet.count(VD)) {
-  // We need to save the copied-in variables in nested
-  // blocks because it is needed at the end for some of the API 
generations.
-  // See SynthesizeBlockLiterals routine.
-InnerDeclRefs.push_back(Exp); countOfInnerDecls++;
+// We need to save the copied-in variables in nested
+// blocks because it is needed at the end for some of the API
+// generations. See SynthesizeBlockLiterals routine.
+InnerDeclRefs.push_back(Exp);
+countOfInnerDecls++;
 BlockDeclRefs.push_back(Exp);
 BlockByCopyDeclsPtrSet.insert(VD);
 BlockByCopyDecls.push_back(VD);
   }
   if (VD->hasAttr() && !BlockByRefDeclsPtrSet.count(VD)) {
-InnerDeclRefs.push_back(Exp); countOfInnerDecls++;
+InnerDeclRefs.push_back(Exp);
+countOfInnerDecls++;
 BlockDeclRefs.push_back(Exp);
 BlockByRefDeclsPtrSet.insert(VD);
 BlockByRefDecls.push_back(VD);



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [modularize] Avoid repeated hash lookups (NFC) (PR #109508)

2024-09-21 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109508
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [modularize] Avoid repeated hash lookups (NFC) (PR #109508)

2024-09-21 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata updated 
https://github.com/llvm/llvm-project/pull/109508

>From d50b829fd1277736b7e65886879fcfe9a45714f2 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 20 Sep 2024 13:31:12 -0700
Subject: [PATCH 1/3] [modularize] Avoid repeated hash lookups (NFC)

---
 clang-tools-extra/modularize/Modularize.cpp | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/clang-tools-extra/modularize/Modularize.cpp 
b/clang-tools-extra/modularize/Modularize.cpp
index f3e7dfc20b027d..92e4792526d6f3 100644
--- a/clang-tools-extra/modularize/Modularize.cpp
+++ b/clang-tools-extra/modularize/Modularize.cpp
@@ -508,13 +508,11 @@ class EntityMap : public std::map> {
   // Sort contents.
   llvm::sort(H->second);
 
-  // Check whether we've seen this header before.
-  auto KnownH = AllHeaderContents.find(H->first);
-  if (KnownH == AllHeaderContents.end()) {
-// We haven't seen this header before; record its contents.
-AllHeaderContents.insert(*H);
+  // Record this header and its contents if we haven't seen it before.
+  auto [KnownH, Inserted] =
+  AllHeaderContents.try_emplace(H->first, H->second);
+  if (Inserted)
 continue;
-  }
 
   // If the header contents are the same, we're done.
   if (H->second == KnownH->second)

>From 39dea55ef4af49f1d855d78a70a5b5f535e44405 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Sat, 21 Sep 2024 09:12:57 -0700
Subject: [PATCH 2/3] Update clang-tools-extra/modularize/Modularize.cpp

Co-authored-by: Nikita Popov 
---
 clang-tools-extra/modularize/Modularize.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang-tools-extra/modularize/Modularize.cpp 
b/clang-tools-extra/modularize/Modularize.cpp
index 92e4792526d6f3..9dda405a392bec 100644
--- a/clang-tools-extra/modularize/Modularize.cpp
+++ b/clang-tools-extra/modularize/Modularize.cpp
@@ -510,7 +510,7 @@ class EntityMap : public std::map> {
 
   // Record this header and its contents if we haven't seen it before.
   auto [KnownH, Inserted] =
-  AllHeaderContents.try_emplace(H->first, H->second);
+  AllHeaderContents.insert(*H);
   if (Inserted)
 continue;
 

>From 92292648faf08168d951e762ec191d1b21df2ce5 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Sat, 21 Sep 2024 09:18:17 -0700
Subject: [PATCH 3/3] Fix formatting.

---
 clang-tools-extra/modularize/Modularize.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/clang-tools-extra/modularize/Modularize.cpp 
b/clang-tools-extra/modularize/Modularize.cpp
index 9dda405a392bec..2c00c76c855336 100644
--- a/clang-tools-extra/modularize/Modularize.cpp
+++ b/clang-tools-extra/modularize/Modularize.cpp
@@ -509,8 +509,7 @@ class EntityMap : public std::map> {
   llvm::sort(H->second);
 
   // Record this header and its contents if we haven't seen it before.
-  auto [KnownH, Inserted] =
-  AllHeaderContents.insert(*H);
+  auto [KnownH, Inserted] = AllHeaderContents.insert(*H);
   if (Inserted)
 continue;
 

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [modularize] Avoid repeated hash lookups (NFC) (PR #109508)

2024-09-21 Thread Kazu Hirata via cfe-commits

kazutakahirata wrote:

Revised the patch.  Please take a look.  Thanks!

https://github.com/llvm/llvm-project/pull/109508
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [modularize] Avoid repeated hash lookups (NFC) (PR #109508)

2024-09-21 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata updated 
https://github.com/llvm/llvm-project/pull/109508

>From d50b829fd1277736b7e65886879fcfe9a45714f2 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 20 Sep 2024 13:31:12 -0700
Subject: [PATCH 1/2] [modularize] Avoid repeated hash lookups (NFC)

---
 clang-tools-extra/modularize/Modularize.cpp | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/clang-tools-extra/modularize/Modularize.cpp 
b/clang-tools-extra/modularize/Modularize.cpp
index f3e7dfc20b027d..92e4792526d6f3 100644
--- a/clang-tools-extra/modularize/Modularize.cpp
+++ b/clang-tools-extra/modularize/Modularize.cpp
@@ -508,13 +508,11 @@ class EntityMap : public std::map> {
   // Sort contents.
   llvm::sort(H->second);
 
-  // Check whether we've seen this header before.
-  auto KnownH = AllHeaderContents.find(H->first);
-  if (KnownH == AllHeaderContents.end()) {
-// We haven't seen this header before; record its contents.
-AllHeaderContents.insert(*H);
+  // Record this header and its contents if we haven't seen it before.
+  auto [KnownH, Inserted] =
+  AllHeaderContents.try_emplace(H->first, H->second);
+  if (Inserted)
 continue;
-  }
 
   // If the header contents are the same, we're done.
   if (H->second == KnownH->second)

>From 39dea55ef4af49f1d855d78a70a5b5f535e44405 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Sat, 21 Sep 2024 09:12:57 -0700
Subject: [PATCH 2/2] Update clang-tools-extra/modularize/Modularize.cpp

Co-authored-by: Nikita Popov 
---
 clang-tools-extra/modularize/Modularize.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang-tools-extra/modularize/Modularize.cpp 
b/clang-tools-extra/modularize/Modularize.cpp
index 92e4792526d6f3..9dda405a392bec 100644
--- a/clang-tools-extra/modularize/Modularize.cpp
+++ b/clang-tools-extra/modularize/Modularize.cpp
@@ -510,7 +510,7 @@ class EntityMap : public std::map> {
 
   // Record this header and its contents if we haven't seen it before.
   auto [KnownH, Inserted] =
-  AllHeaderContents.try_emplace(H->first, H->second);
+  AllHeaderContents.insert(*H);
   if (Inserted)
 continue;
 

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang-offload-bundler] Avoid repeated hash lookups (NFC) (PR #109507)

2024-09-21 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109507
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [modularize] Avoid repeated hash lookups (NFC) (PR #109508)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/109508

None

>From d50b829fd1277736b7e65886879fcfe9a45714f2 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 20 Sep 2024 13:31:12 -0700
Subject: [PATCH] [modularize] Avoid repeated hash lookups (NFC)

---
 clang-tools-extra/modularize/Modularize.cpp | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/clang-tools-extra/modularize/Modularize.cpp 
b/clang-tools-extra/modularize/Modularize.cpp
index f3e7dfc20b027d..92e4792526d6f3 100644
--- a/clang-tools-extra/modularize/Modularize.cpp
+++ b/clang-tools-extra/modularize/Modularize.cpp
@@ -508,13 +508,11 @@ class EntityMap : public std::map> {
   // Sort contents.
   llvm::sort(H->second);
 
-  // Check whether we've seen this header before.
-  auto KnownH = AllHeaderContents.find(H->first);
-  if (KnownH == AllHeaderContents.end()) {
-// We haven't seen this header before; record its contents.
-AllHeaderContents.insert(*H);
+  // Record this header and its contents if we haven't seen it before.
+  auto [KnownH, Inserted] =
+  AllHeaderContents.try_emplace(H->first, H->second);
+  if (Inserted)
 continue;
-  }
 
   // If the header contents are the same, we're done.
   if (H->second == KnownH->second)

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang-offload-bundler] Avoid repeated hash lookups (NFC) (PR #109507)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/109507

None

>From a08161a8308d724e7cf41ee0f603321ee6a121d4 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 20 Sep 2024 13:32:54 -0700
Subject: [PATCH] [clang-offload-bundler] Avoid repeated hash lookups (NFC)

---
 clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp 
b/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
index e336417586f70b..0189fe5d56ab2a 100644
--- a/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
+++ b/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
@@ -349,11 +349,10 @@ int main(int argc, const char **argv) {
   // Standardize target names to include env field
   std::vector StandardizedTargetNames;
   for (StringRef Target : TargetNames) {
-if (ParsedTargets.contains(Target)) {
+if (!ParsedTargets.insert(Target).second) {
   reportError(createStringError(errc::invalid_argument,
 "Duplicate targets are not allowed"));
 }
-ParsedTargets.insert(Target);
 
 auto OffloadInfo = OffloadTargetInfo(Target, BundlerConfig);
 bool KindIsValid = OffloadInfo.isOffloadKindValid();

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [TableGen] Use StringSet instead of StringMap (NFC) (PR #109469)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109469
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [TableGen] Use StringSet instead of StringMap (NFC) (PR #109469)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/109469

None

>From 8605aa9564d7fdf1d6185ceb498e29d276d39dc3 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 20 Sep 2024 09:02:01 -0700
Subject: [PATCH] [TableGen] Use StringSet instead of StringMap (NFC)

---
 clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp | 12 +---
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp 
b/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp
index 2a369271cfc3f2..80cb2ee28e256a 100644
--- a/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp
+++ b/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp
@@ -20,7 +20,6 @@
 #include "llvm/ADT/SmallSet.h"
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/StringExtras.h"
-#include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/StringSet.h"
 #include "llvm/ADT/StringSwitch.h"
@@ -114,9 +113,8 @@ class BuiltinNameEmitter {
   // \param Output (out) String containing the enums to emit in the output 
file.
   // \param List (out) List containing the extracted Types, except the Types in
   //TypesSeen.
-  void ExtractEnumTypes(ArrayRef Types,
-StringMap &TypesSeen, std::string &Output,
-std::vector &List);
+  void ExtractEnumTypes(ArrayRef Types, StringSet<> &TypesSeen,
+std::string &Output, std::vector 
&List);
 
   // Emit the enum or struct used in the generated file.
   // Populate the TypeList at the same time.
@@ -364,7 +362,7 @@ void BuiltinNameEmitter::Emit() {
 }
 
 void BuiltinNameEmitter::ExtractEnumTypes(ArrayRef Types,
-  StringMap &TypesSeen,
+  StringSet<> &TypesSeen,
   std::string &Output,
   std::vector &List) {
   raw_string_ostream SS(Output);
@@ -376,7 +374,7 @@ void BuiltinNameEmitter::ExtractEnumTypes(ArrayRef Types,
   // the Record can be a VectorType or something else, only the name is
   // important.
   List.push_back(T);
-  TypesSeen.insert(std::make_pair(T->getValueAsString("Name"), true));
+  TypesSeen.insert(T->getValueAsString("Name"));
 }
   }
 }
@@ -385,7 +383,7 @@ void BuiltinNameEmitter::EmitDeclarations() {
   // Enum of scalar type names (float, int, ...) and generic type sets.
   OS << "enum OpenCLTypeID {\n";
 
-  StringMap TypesSeen;
+  StringSet<> TypesSeen;
   std::string GenTypeEnums;
   std::string TypeEnums;
 

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [TableGen] Use StringSet instead of StringMap (NFC) (PR #109441)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109441
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-move] Use a range-based for loop (NFC) (PR #109438)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109438
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Declare GlobalMethodPool with using (NFC) (PR #109437)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109437
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-09-20 Thread Kazu Hirata via cfe-commits

kazutakahirata wrote:

I've fixed a warning from this PR with 30adb43c897a45c18d7dd163fb4ff40c915fc488.


https://github.com/llvm/llvm-project/pull/106585
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 30adb43 - [AST] Fix a warning

2024-09-20 Thread Kazu Hirata via cfe-commits

Author: Kazu Hirata
Date: 2024-09-20T13:05:04-07:00
New Revision: 30adb43c897a45c18d7dd163fb4ff40c915fc488

URL: 
https://github.com/llvm/llvm-project/commit/30adb43c897a45c18d7dd163fb4ff40c915fc488
DIFF: 
https://github.com/llvm/llvm-project/commit/30adb43c897a45c18d7dd163fb4ff40c915fc488.diff

LOG: [AST] Fix a warning

This patch fixes:

  clang/lib/AST/DeclTemplate.cpp:466:9: error: unused type alias 'Base'
  [-Werror,-Wunused-local-typedef]

Added: 


Modified: 
clang/lib/AST/DeclTemplate.cpp

Removed: 




diff  --git a/clang/lib/AST/DeclTemplate.cpp b/clang/lib/AST/DeclTemplate.cpp
index 6f17baf4fc01ad..b779d79af81f26 100644
--- a/clang/lib/AST/DeclTemplate.cpp
+++ b/clang/lib/AST/DeclTemplate.cpp
@@ -463,8 +463,6 @@ void FunctionTemplateDecl::addSpecialization(
 }
 
 void FunctionTemplateDecl::mergePrevDecl(FunctionTemplateDecl *Prev) {
-  using Base = RedeclarableTemplateDecl;
-
   // If we haven't created a common pointer yet, then it can just be created
   // with the usual method.
   if (!getCommonPtrInternal())



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-tools-extra] Use {} instead of std::nullopt to initialize empty ArrayRef (PR #109400)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata approved this pull request.

LGTM.  Thanks!

https://github.com/llvm/llvm-project/pull/109400
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Use {} instead of std::nullopt to initialize empty ArrayRef (PR #109399)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata approved this pull request.

LGTM.  Thanks!

https://github.com/llvm/llvm-project/pull/109399
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [TableGen] Use StringSet instead of StringMap (NFC) (PR #109441)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/109441

None

>From 2d341c98063a16644c373b41390d681df4908034 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 20 Sep 2024 09:07:34 -0700
Subject: [PATCH] [TableGen] Use StringSet instead of StringMap (NFC)

---
 clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp 
b/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp
index 25c7bf0306a891..2a369271cfc3f2 100644
--- a/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp
+++ b/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp
@@ -22,6 +22,7 @@
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/ADT/StringSet.h"
 #include "llvm/ADT/StringSwitch.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/raw_ostream.h"
@@ -889,14 +890,14 @@ static void OCL2Qual(Sema &S, const OpenCLTypeStruct &Ty,
   // Only insert the plain scalar type; vector information and type qualifiers
   // are added in step 2.
   ArrayRef Types = Records.getAllDerivedDefinitions("Type");
-  StringMap TypesSeen;
+  StringSet<> TypesSeen;
 
   for (const auto *T : Types) {
 // Check this is not an image type
 if (ImageTypesMap.contains(T->getValueAsString("Name")))
   continue;
 // Check we have not seen this Type
-if (!TypesSeen.try_emplace(T->getValueAsString("Name"), true).second)
+if (!TypesSeen.insert(T->getValueAsString("Name")).second)
   continue;
 
 // Check the Type does not have an "abstract" QualType

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [TableGen] Avoid repeated hash lookups (NFC) (PR #109372)

2024-09-20 Thread Kazu Hirata via cfe-commits


@@ -896,9 +896,8 @@ static void OCL2Qual(Sema &S, const OpenCLTypeStruct &Ty,
 if (ImageTypesMap.contains(T->getValueAsString("Name")))
   continue;
 // Check we have not seen this Type
-if (TypesSeen.contains(T->getValueAsString("Name")))
+if (!TypesSeen.try_emplace(T->getValueAsString("Name"), true).second)

kazutakahirata wrote:

The value doesn't seem to be used indeed.  Let me clean that up in a subsequent 
patch.

https://github.com/llvm/llvm-project/pull/109372
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [TableGen] Avoid repeated hash lookups (NFC) (PR #109372)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109372
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-move] Use a range-based for loop (NFC) (PR #109438)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/109438

None

>From a8f5541213f25f266355db26cb685d969cdf6ef9 Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 20 Sep 2024 08:36:08 -0700
Subject: [PATCH] [clang-move] Use a range-based for loop (NFC)

---
 clang-tools-extra/clang-move/HelperDeclRefGraph.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang-tools-extra/clang-move/HelperDeclRefGraph.cpp 
b/clang-tools-extra/clang-move/HelperDeclRefGraph.cpp
index ae7dc5b2c0548b..36fddcba25d616 100644
--- a/clang-tools-extra/clang-move/HelperDeclRefGraph.cpp
+++ b/clang-tools-extra/clang-move/HelperDeclRefGraph.cpp
@@ -78,8 +78,8 @@ HelperDeclRefGraph::getReachableNodes(const Decl *Root) const 
{
   [&](const CallGraphNode *Node) {
 if (!ConnectedNodes.insert(Node).second)
   return;
-for (auto It = Node->begin(), End = Node->end(); It != End; ++It)
-  VisitNode(*It);
+for (const CallGraphNode::CallRecord &Callee : *Node)
+  VisitNode(Callee);
   };
 
   VisitNode(RootNode);

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Declare GlobalMethodPool with using (NFC) (PR #109437)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/109437

GlobalMethodPool is a wrapper around DenseMap that does not add
anything except:

  using Lists = std::pair;

This patch removes the wrapper and switches to an alias with "using".

In ReadMethodPool in ASTReader.cpp, we can simplify:

  insert(std::make_pair(Sel, SemaObjC::GlobalMethodPool::Lists()))

to:

  try_emplace(Sel)

But then try_emplace(Sel).first->second is the same as operator[], so
this patch simplifies the rest of the function.


>From e02e3092f454bacf4154b98ae3847cf34880253a Mon Sep 17 00:00:00 2001
From: Kazu Hirata 
Date: Fri, 20 Sep 2024 08:20:04 -0700
Subject: [PATCH] [Sema] Declare GlobalMethodPool with using (NFC)

GlobalMethodPool is a wrapper around DenseMap that does not add
anything except:

  using Lists = std::pair;

This patch removes the wrapper and switches to an alias with "using".

In ReadMethodPool in ASTReader.cpp, we can simplify:

  insert(std::make_pair(Sel, SemaObjC::GlobalMethodPool::Lists()))

to:

  try_emplace(Sel)

But then try_emplace(Sel).first->second is the same as operator[], so
this patch simplifies the rest of the function.
---
 clang/include/clang/Sema/SemaObjC.h   | 19 ++-
 clang/lib/Sema/SemaDeclObjC.cpp   |  2 +-
 clang/lib/Serialization/ASTReader.cpp | 18 +++---
 3 files changed, 10 insertions(+), 29 deletions(-)

diff --git a/clang/include/clang/Sema/SemaObjC.h 
b/clang/include/clang/Sema/SemaObjC.h
index b868e9e7cd0aa9..9367c680953f71 100644
--- a/clang/include/clang/Sema/SemaObjC.h
+++ b/clang/include/clang/Sema/SemaObjC.h
@@ -208,23 +208,8 @@ class SemaObjC : public SemaBase {
   /// of -Wselector.
   llvm::MapVector ReferencedSelectors;
 
-  class GlobalMethodPool {
-  public:
-using Lists = std::pair;
-using iterator = llvm::DenseMap::iterator;
-iterator begin() { return Methods.begin(); }
-iterator end() { return Methods.end(); }
-iterator find(Selector Sel) { return Methods.find(Sel); }
-std::pair insert(std::pair &&Val) {
-  return Methods.insert(Val);
-}
-Lists &operator[](Selector Key) { return Methods[Key]; }
-int count(Selector Sel) const { return Methods.count(Sel); }
-bool empty() const { return Methods.empty(); }
-
-  private:
-llvm::DenseMap Methods;
-  };
+  using GlobalMethodPool =
+  llvm::DenseMap>;
 
   /// Method Pool - allows efficient lookup when typechecking messages to "id".
   /// We need to maintain a list, since selectors can have differing signatures
diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp
index 87be43b13813d3..d8cd09b8272930 100644
--- a/clang/lib/Sema/SemaDeclObjC.cpp
+++ b/clang/lib/Sema/SemaDeclObjC.cpp
@@ -3649,7 +3649,7 @@ ObjCMethodDecl 
*SemaObjC::LookupImplementedMethodInGlobalPool(Selector Sel) {
   if (Pos == MethodPool.end())
 return nullptr;
 
-  GlobalMethodPool::Lists &Methods = Pos->second;
+  auto &Methods = Pos->second;
   for (const ObjCMethodList *Method = &Methods.first; Method;
Method = Method->getNext())
 if (Method->getMethod() &&
diff --git a/clang/lib/Serialization/ASTReader.cpp 
b/clang/lib/Serialization/ASTReader.cpp
index 7efcc81e194d95..47a286be2303fd 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -8751,22 +8751,18 @@ void ASTReader::ReadMethodPool(Selector Sel) {
 return;
 
   Sema &S = *getSema();
-  SemaObjC::GlobalMethodPool::iterator Pos =
-  S.ObjC()
-  .MethodPool
-  .insert(std::make_pair(Sel, SemaObjC::GlobalMethodPool::Lists()))
-  .first;
+  auto &Methods = S.ObjC().MethodPool[Sel];
 
-  Pos->second.first.setBits(Visitor.getInstanceBits());
-  
Pos->second.first.setHasMoreThanOneDecl(Visitor.instanceHasMoreThanOneDecl());
-  Pos->second.second.setBits(Visitor.getFactoryBits());
-  
Pos->second.second.setHasMoreThanOneDecl(Visitor.factoryHasMoreThanOneDecl());
+  Methods.first.setBits(Visitor.getInstanceBits());
+  Methods.first.setHasMoreThanOneDecl(Visitor.instanceHasMoreThanOneDecl());
+  Methods.second.setBits(Visitor.getFactoryBits());
+  Methods.second.setHasMoreThanOneDecl(Visitor.factoryHasMoreThanOneDecl());
 
   // Add methods to the global pool *after* setting hasMoreThanOneDecl, since
   // when building a module we keep every method individually and may need to
   // update hasMoreThanOneDecl as we add the methods.
-  addMethodsToPool(S, Visitor.getInstanceMethods(), Pos->second.first);
-  addMethodsToPool(S, Visitor.getFactoryMethods(), Pos->second.second);
+  addMethodsToPool(S, Visitor.getInstanceMethods(), Methods.first);
+  addMethodsToPool(S, Visitor.getFactoryMethods(), Methods.second);
 }
 
 void ASTReader::updateOutOfDateSelector(Selector Sel) {

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-tidy] Avoid repeated hash lookups (NFC) (PR #109373)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109373
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-move] Avoid repeated hash lookups (NFC) (PR #109374)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109374
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang-tools-extra] [clang-move] Avoid repeated hash lookups (NFC) (PR #109374)

2024-09-20 Thread Kazu Hirata via cfe-commits


@@ -76,9 +76,8 @@ HelperDeclRefGraph::getReachableNodes(const Decl *Root) const 
{
   llvm::DenseSet ConnectedNodes;
   std::function VisitNode =
   [&](const CallGraphNode *Node) {
-if (ConnectedNodes.count(Node))
+if (!ConnectedNodes.insert(Node).second)
   return;
-ConnectedNodes.insert(Node);
 for (auto It = Node->begin(), End = Node->end(); It != End; ++It)

kazutakahirata wrote:

Sure.  I'll take care of it in a subsequent patch.

https://github.com/llvm/llvm-project/pull/109374
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Avoid repeated hash lookups (NFC) (PR #109375)

2024-09-20 Thread Kazu Hirata via cfe-commits

https://github.com/kazutakahirata closed 
https://github.com/llvm/llvm-project/pull/109375
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Sema] Avoid repeated hash lookups (NFC) (PR #109375)

2024-09-20 Thread Kazu Hirata via cfe-commits

kazutakahirata wrote:

> Hm, why does this wrapper exist at all? It looks like a trivial wrapper that 
> doesn't add or change any DenseMap functionality.

I was wondering about the same thing.  Let me get rid of the wrapper in a 
subsequent patch.

https://github.com/llvm/llvm-project/pull/109375
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


  1   2   3   4   5   6   7   8   >