[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