From 7c9a7728d9dd248ebee8f2dd969d303711d487a9 Mon Sep 17 00:00:00 2001 From: Jim Grosbach Date: Thu, 11 Sep 2008 17:05:32 +0000 Subject: [PATCH] lib/Target/SubtargetFeature.cpp asserts that the FeatureKV[] table be sorted by its first field, but TableGen doesn't actually enforce creating it that way. TableGen sorts the records that will be used to create it by the names of the records, not the Name field of those records. This patch corrects the sort to use the "Name" field of the record as the sort key. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56106 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/Record.h | 3 ++- utils/TableGen/SubtargetEmitter.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/utils/TableGen/Record.h b/utils/TableGen/Record.h index d597715cd1a..90e246eb477 100644 --- a/utils/TableGen/Record.h +++ b/utils/TableGen/Record.h @@ -1183,7 +1183,8 @@ struct LessRecord { } }; -/// LessRecord - Sorting predicate to sort record pointers by their name field. +/// LessRecordFieldName - Sorting predicate to sort record pointers by their +/// name field. /// struct LessRecordFieldName { bool operator()(const Record *Rec1, const Record *Rec2) const { diff --git a/utils/TableGen/SubtargetEmitter.cpp b/utils/TableGen/SubtargetEmitter.cpp index 9b5f6df4d4a..b05b9968a2e 100644 --- a/utils/TableGen/SubtargetEmitter.cpp +++ b/utils/TableGen/SubtargetEmitter.cpp @@ -61,7 +61,7 @@ void SubtargetEmitter::FeatureKeyValues(std::ostream &OS) { // Gather and sort all the features std::vector FeatureList = Records.getAllDerivedDefinitions("SubtargetFeature"); - std::sort(FeatureList.begin(), FeatureList.end(), LessRecord()); + std::sort(FeatureList.begin(), FeatureList.end(), LessRecordFieldName()); // Begin feature table OS << "// Sorted (by key) array of values for CPU features.\n"