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

via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 11 17:31:43 PDT 2024


Author: Craig Topper
Date: 2024-03-11T17:31:38-07:00
New Revision: 8d61f82bd3676bc541edfad1014e3ed599cc1390

URL: https://github.com/llvm/llvm-project/commit/8d61f82bd3676bc541edfad1014e3ed599cc1390
DIFF: https://github.com/llvm/llvm-project/commit/8d61f82bd3676bc541edfad1014e3ed599cc1390.diff

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

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

Added: 
    

Modified: 
    lld/ELF/Arch/RISCV.cpp

Removed: 
    


################################################################################
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;
     }
   }
 }


        


More information about the llvm-commits mailing list