[llvm] [Transforms] Avoid repeated hash lookups (NFC) (PR #129359)

Kazu Hirata via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 28 20:12:48 PST 2025


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

None

>From e9e706274f04cf7ab4cebb10603b56910a316e10 Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Thu, 27 Feb 2025 23:04:13 -0800
Subject: [PATCH] [Transforms] Avoid repeated hash lookups (NFC)

---
 .../llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h    | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h b/llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
index 390f284019bb4..d714dba4a9687 100644
--- a/llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
+++ b/llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
@@ -646,14 +646,13 @@ void SampleProfileLoaderBaseImpl<BT>::findEquivalenceClasses(FunctionT &F) {
     BasicBlockT *BB1 = &BB;
 
     // Compute BB1's equivalence class once.
-    if (EquivalenceClass.count(BB1)) {
+    // By default, blocks are in their own equivalence class.
+    auto [It, Inserted] = EquivalenceClass.try_emplace(BB1, BB1);
+    if (!Inserted) {
       LLVM_DEBUG(printBlockEquivalence(dbgs(), BB1));
       continue;
     }
 
-    // By default, blocks are in their own equivalence class.
-    EquivalenceClass[BB1] = BB1;
-
     // Traverse all the blocks dominated by BB1. We are looking for
     // every basic block BB2 such that:
     //



More information about the llvm-commits mailing list