[lld] [lld] Use std::tie to implement comparison operators (NFC) (PR #143726)
Kazu Hirata via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 11 08:26:08 PDT 2025
https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/143726
std::tie facilitates lexicographical comparisons through std::tuple's
built-in operator< and operator>.
>From 83600480790464082d2c6f0a9627a169e14f89bd Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Tue, 10 Jun 2025 20:22:43 -0700
Subject: [PATCH] [lld] Use std::tie to implement comparison operators (NFC)
std::tie facilitates lexicographical comparisons through std::tuple's
built-in operator< and operator>.
---
lld/ELF/SyntheticSections.cpp | 7 ++-----
lld/MachO/UnwindInfoSection.cpp | 8 +++-----
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/lld/ELF/SyntheticSections.cpp b/lld/ELF/SyntheticSections.cpp
index 785a56cdb349e..0a9c7a081eb8b 100644
--- a/lld/ELF/SyntheticSections.cpp
+++ b/lld/ELF/SyntheticSections.cpp
@@ -1939,11 +1939,8 @@ bool AndroidPackedRelocationSection<ELFT>::updateAllocSize(Ctx &ctx) {
// For Rela, we also want to sort by r_addend when r_info is the same. This
// enables us to group by r_addend as well.
llvm::sort(nonRelatives, [](const Elf_Rela &a, const Elf_Rela &b) {
- if (a.r_info != b.r_info)
- return a.r_info < b.r_info;
- if (a.r_addend != b.r_addend)
- return a.r_addend < b.r_addend;
- return a.r_offset < b.r_offset;
+ return std::tie(a.r_info, a.r_addend, a.r_offset) <
+ std::tie(b.r_info, b.r_addend, b.r_offset);
});
// Group relocations with the same r_info. Note that each group emits a group
diff --git a/lld/MachO/UnwindInfoSection.cpp b/lld/MachO/UnwindInfoSection.cpp
index 624464e41d77c..6e9f6c2aba749 100644
--- a/lld/MachO/UnwindInfoSection.cpp
+++ b/lld/MachO/UnwindInfoSection.cpp
@@ -535,11 +535,9 @@ void UnwindInfoSectionImpl::finalize() {
llvm::sort(commonEncodings,
[](const std::pair<compact_unwind_encoding_t, size_t> &a,
const std::pair<compact_unwind_encoding_t, size_t> &b) {
- if (a.second == b.second)
- // When frequencies match, secondarily sort on encoding
- // to maintain parity with validate-unwind-info.py
- return a.first > b.first;
- return a.second > b.second;
+ // When frequencies match, secondarily sort on encoding
+ // to maintain parity with validate-unwind-info.py
+ return std::tie(a.second, a.first) > std::tie(b.second, b.first);
});
// Truncate the vector to 127 elements.
More information about the llvm-commits
mailing list