Skip to content

Commit f28b6a5

Browse files
author
Jessica Paquette
committed
Add tie-breaker for register class sorting in getSuperRegForSubReg
llvm::stable_sort is apparently not sufficient. Use the same tie-breaker/sorting style as TopoOrderRC fix bot failures. E.g. http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/19401/steps/test-check-all/logs/stdio git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370267 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent b98de8c commit f28b6a5

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

utils/TableGen/CodeGenTarget.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,14 @@ CodeGenTarget::getSuperRegForSubReg(const ValueTypeByHwMode &ValueTy,
329329
// Find and return the largest of our candidate classes.
330330
llvm::stable_sort(Candidates, [&](const CodeGenRegisterClass *A,
331331
const CodeGenRegisterClass *B) {
332-
return A->getMembers().size() > B->getMembers().size();
332+
if (A->getMembers().size() > B->getMembers().size())
333+
return true;
334+
335+
if (A->getMembers().size() < B->getMembers().size())
336+
return false;
337+
338+
// Order by name as a tie-breaker.
339+
return StringRef(A->getName()) < B->getName();
333340
});
334341

335342
return Candidates[0];

0 commit comments

Comments
 (0)