diff options
Diffstat (limited to 'llvm/utils/TableGen/Common/CodeGenSchedule.cpp')
| -rw-r--r-- | llvm/utils/TableGen/Common/CodeGenSchedule.cpp | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/llvm/utils/TableGen/Common/CodeGenSchedule.cpp b/llvm/utils/TableGen/Common/CodeGenSchedule.cpp index 152e68797b99..6386cc8eb32d 100644 --- a/llvm/utils/TableGen/Common/CodeGenSchedule.cpp +++ b/llvm/utils/TableGen/Common/CodeGenSchedule.cpp @@ -14,6 +14,7 @@ #include "CodeGenSchedule.h" #include "CodeGenInstruction.h" #include "CodeGenTarget.h" +#include "Utils.h" #include "llvm/ADT/MapVector.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SmallPtrSet.h" @@ -533,17 +534,9 @@ void CodeGenSchedModels::collectOptionalProcessorInfo() { /// Gather all processor models. void CodeGenSchedModels::collectProcModels() { RecVec ProcRecords = Records.getAllDerivedDefinitions("Processor"); - llvm::sort(ProcRecords, LessRecordFieldName()); - - // Check for duplicated names. - auto I = std::adjacent_find(ProcRecords.begin(), ProcRecords.end(), - [](const Record *Rec1, const Record *Rec2) { - return Rec1->getValueAsString("Name") == - Rec2->getValueAsString("Name"); - }); - if (I != ProcRecords.end()) - PrintFatalError((*I)->getLoc(), "Duplicate processor name " + - (*I)->getValueAsString("Name")); + + // Sort and check duplicate Processor name. + sortAndReportDuplicates(ProcRecords, "Processor"); // Reserve space because we can. Reallocation would be ok. ProcModels.reserve(ProcRecords.size() + 1); |
