[lld] [lld][RISCV] Avoid second map lookup in mergeArch. NFC (PR #84687)

via llvm-commits llvm-commits at lists.llvm.org
Sun Mar 10 11:55:04 PDT 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lld

@llvm/pr-subscribers-lld-elf

Author: Craig Topper (topperc)

<details>
<summary>Changes</summary>

Instead of using find and then an inserting into the map, we can use insert and fix up the version using the iterator if the insert fails.

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


1 Files Affected:

- (modified) lld/ELF/Arch/RISCV.cpp (+4-4) 


``````````diff
diff --git a/lld/ELF/Arch/RISCV.cpp b/lld/ELF/Arch/RISCV.cpp
index 4798c86f7d1b61..20de1b9b7bde96 100644
--- a/lld/ELF/Arch/RISCV.cpp
+++ b/lld/ELF/Arch/RISCV.cpp
@@ -1074,12 +1074,12 @@ static void mergeArch(RISCVISAInfo::OrderedExtensionMap &mergedExts,
     mergedXlen = info.getXLen();
   } else {
     for (const auto &ext : info.getExtensions()) {
-      if (auto it = mergedExts.find(ext.first); it != mergedExts.end()) {
-        if (std::tie(it->second.Major, it->second.Minor) >=
+      auto p = mergedExts.insert(ext);
+      if (!p.second) {
+        if (std::tie(p.first->second.Major, p.first->second.Minor) <
             std::tie(ext.second.Major, ext.second.Minor))
-          continue;
+          p.first->second = ext.second;
       }
-      mergedExts[ext.first] = ext.second;
     }
   }
 }

``````````

</details>


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


More information about the llvm-commits mailing list