mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-25 20:59:51 +00:00
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
This commit is contained in:
parent
1abe60b9be
commit
7c9a7728d9
@ -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 {
|
struct LessRecordFieldName {
|
||||||
bool operator()(const Record *Rec1, const Record *Rec2) const {
|
bool operator()(const Record *Rec1, const Record *Rec2) const {
|
||||||
|
@ -61,7 +61,7 @@ void SubtargetEmitter::FeatureKeyValues(std::ostream &OS) {
|
|||||||
// Gather and sort all the features
|
// Gather and sort all the features
|
||||||
std::vector<Record*> FeatureList =
|
std::vector<Record*> FeatureList =
|
||||||
Records.getAllDerivedDefinitions("SubtargetFeature");
|
Records.getAllDerivedDefinitions("SubtargetFeature");
|
||||||
std::sort(FeatureList.begin(), FeatureList.end(), LessRecord());
|
std::sort(FeatureList.begin(), FeatureList.end(), LessRecordFieldName());
|
||||||
|
|
||||||
// Begin feature table
|
// Begin feature table
|
||||||
OS << "// Sorted (by key) array of values for CPU features.\n"
|
OS << "// Sorted (by key) array of values for CPU features.\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user