[llvm] [MC] Make pseudo-probe divisions ordering stable (PR #214803)

Wei Wang via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 7 11:50:57 PDT 2026


================
@@ -216,9 +216,12 @@ void MCPseudoProbeSections::emit(MCObjectStreamer *MCOS) {
     Vec.emplace_back(ProbeSec.first, &ProbeSec.second);
   for (auto I : llvm::enumerate(MCOS->getAssembler()))
     I.value().setOrdinal(I.index());
-  llvm::sort(Vec, [](auto A, auto B) {
-    return A.first->getSection().getOrdinal() <
-           B.first->getSection().getOrdinal();
+  llvm::sort(Vec, [](const auto &A, const auto &B) {
+    const auto AOrdinal = A.first->getSection().getOrdinal();
+    const auto BOrdinal = B.first->getSection().getOrdinal();
+    if (AOrdinal != BOrdinal)
+      return AOrdinal < BOrdinal;
+    return A.first->getName() < B.first->getName();
----------------
apolloww wrote:

Maybe simplify as

```suggestion
return std::make_pair(A.first->getSection().getOrdinal(), A.first->getName()) <
         std::make_pair(B.first->getSection().getOrdinal(), B.first->getName());
```

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


More information about the llvm-commits mailing list