[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