[llvm] [MCA] Avoid repeated hash lookups (NFC) (PR #109905)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 24 21:26:43 PDT 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-tools-llvm-mca

Author: Kazu Hirata (kazutakahirata)

<details>
<summary>Changes</summary>



---
Full diff: https://github.com/llvm/llvm-project/pull/109905.diff


1 Files Affected:

- (modified) llvm/lib/MCA/HardwareUnits/ResourceManager.cpp (+3-4) 


``````````diff
diff --git a/llvm/lib/MCA/HardwareUnits/ResourceManager.cpp b/llvm/lib/MCA/HardwareUnits/ResourceManager.cpp
index 82030207eee616..e45bd00f1a2929 100644
--- a/llvm/lib/MCA/HardwareUnits/ResourceManager.cpp
+++ b/llvm/lib/MCA/HardwareUnits/ResourceManager.cpp
@@ -322,12 +322,11 @@ uint64_t ResourceManager::checkAvailability(const InstrDesc &Desc) const {
 
       uint64_t ResourceMask = llvm::bit_floor(ReadyMask);
 
-      auto it = AvailableUnits.find(ResourceMask);
-      if (it == AvailableUnits.end()) {
+      auto [it, Inserted] = AvailableUnits.try_emplace(ResourceMask);
+      if (Inserted) {
         unsigned Index = getResourceStateIndex(ResourceMask);
         unsigned NumUnits = llvm::popcount(Resources[Index]->getReadyMask());
-        it =
-            AvailableUnits.insert(std::make_pair(ResourceMask, NumUnits)).first;
+        it->second = NumUnits;
       }
 
       if (!it->second) {

``````````

</details>


https://github.com/llvm/llvm-project/pull/109905


More information about the llvm-commits mailing list