[llvm] [TableGen] Avoid repeated hash lookups (NFC) (PR #120681)

Kazu Hirata via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 19 22:55:33 PST 2024


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

>From b9dde9a9aec923b8141bc2bf72b6bbdf110ebda5 Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Thu, 19 Dec 2024 13:04:46 -0800
Subject: [PATCH 1/2] [TableGen] Avoid repeated hash lookups (NFC)

---
 llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
index 1a393beaa14f96..7a82581f2240ce 100644
--- a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
@@ -3508,9 +3508,8 @@ void CodeGenDAGPatterns::FindPatternInputsAndOutputs(
         Val->getDef()->isSubClassOf("PointerLikeRegClass")) {
       if (Dest->getName().empty())
         I.error("set destination must have a name!");
-      if (InstResults.count(Dest->getName()))
+      if (!InstResults.try_emplace(Dest->getName(), Dest).second)
         I.error("cannot set '" + Dest->getName() + "' multiple times");
-      InstResults[Dest->getName()] = Dest;
     } else if (Val->getDef()->isSubClassOf("Register")) {
       InstImpResults.push_back(Val->getDef());
     } else {

>From cc47d4cee8b080a1a3430beb2d2fa62646377b38 Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Thu, 19 Dec 2024 22:51:49 -0800
Subject: [PATCH 2/2] Address comments.

---
 llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
index 7a82581f2240ce..1a61d32b4869a4 100644
--- a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
@@ -3508,7 +3508,7 @@ void CodeGenDAGPatterns::FindPatternInputsAndOutputs(
         Val->getDef()->isSubClassOf("PointerLikeRegClass")) {
       if (Dest->getName().empty())
         I.error("set destination must have a name!");
-      if (!InstResults.try_emplace(Dest->getName(), Dest).second)
+      if (!InstResults.insert_or_assign(Dest->getName(), Dest).second)
         I.error("cannot set '" + Dest->getName() + "' multiple times");
     } else if (Val->getDef()->isSubClassOf("Register")) {
       InstImpResults.push_back(Val->getDef());



More information about the llvm-commits mailing list