From: Daniel Dunbar Date: Tue, 2 Feb 2010 23:46:36 +0000 (+0000) Subject: AsmMatcherEmitter: Use stable_sort when reordering instructions, so that order X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e1f6de3fbd892ea3f918a26912660cf316866fc1;p=oota-llvm.git AsmMatcherEmitter: Use stable_sort when reordering instructions, so that order is still deterministic even amongst ambiguous instructions (eventually ambiguous match orders will be a hard error, but we aren't there yet). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95157 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/TableGen/AsmMatcherEmitter.cpp b/utils/TableGen/AsmMatcherEmitter.cpp index dca7929e545..c80285fa377 100644 --- a/utils/TableGen/AsmMatcherEmitter.cpp +++ b/utils/TableGen/AsmMatcherEmitter.cpp @@ -1413,9 +1413,11 @@ void AsmMatcherEmitter::run(raw_ostream &OS) { AsmMatcherInfo Info(AsmParser); Info.BuildInfo(Target); - // Sort the instruction table using the partial order on classes. - std::sort(Info.Instructions.begin(), Info.Instructions.end(), - less_ptr()); + // Sort the instruction table using the partial order on classes. We use + // stable_sort to ensure that ambiguous instructions are still + // deterministically ordered. + std::stable_sort(Info.Instructions.begin(), Info.Instructions.end(), + less_ptr()); DEBUG_WITH_TYPE("instruction_info", { for (std::vector::iterator