[llvm] c185a66 - [SelectionDAG, TableGen] Use stable_sort after #73310
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 11 19:01:59 PST 2024
Author: Fangrui Song
Date: 2024-01-11T19:01:53-08:00
New Revision: c185a66d8330c07d5878f95d007ba10d107dd59e
URL: https://github.com/llvm/llvm-project/commit/c185a66d8330c07d5878f95d007ba10d107dd59e
DIFF: https://github.com/llvm/llvm-project/commit/c185a66d8330c07d5878f95d007ba10d107dd59e.diff
LOG: [SelectionDAG,TableGen] Use stable_sort after #73310
to ensure determinism with
https://libcxx.llvm.org/DesignDocs/UnspecifiedBehaviorRandomization.html#unspecified-behavior-randomization
Added:
Modified:
llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
Removed:
################################################################################
diff --git a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
index a3e2facf948e89..4af136df974f05 100644
--- a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
+++ b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
@@ -113,16 +113,18 @@ class MatcherTableEmitter {
// Sort ComplexPatterns by usage.
std::vector<std::pair<const ComplexPattern *, unsigned>> ComplexPatternList(
ComplexPatternUsage.begin(), ComplexPatternUsage.end());
- sort(ComplexPatternList,
- [](const auto &A, const auto &B) { return A.second > B.second; });
+ stable_sort(ComplexPatternList, [](const auto &A, const auto &B) {
+ return A.second > B.second;
+ });
for (const auto &ComplexPattern : ComplexPatternList)
ComplexPatterns.push_back(ComplexPattern.first);
// Sort PatternPredicates by usage.
std::vector<std::pair<std::string, unsigned>> PatternPredicateList(
PatternPredicateUsage.begin(), PatternPredicateUsage.end());
- sort(PatternPredicateList,
- [](const auto &A, const auto &B) { return A.second > B.second; });
+ stable_sort(PatternPredicateList, [](const auto &A, const auto &B) {
+ return A.second > B.second;
+ });
for (const auto &PatternPredicate : PatternPredicateList)
PatternPredicates.push_back(PatternPredicate.first);
}
More information about the llvm-commits
mailing list