mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Sort the features and processor lists for the sake of search (and maintainers.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23879 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4245f1d790
commit
7dc02047fb
@ -20,17 +20,42 @@
|
||||
#include <set>
|
||||
using namespace llvm;
|
||||
|
||||
// Convenience types
|
||||
//
|
||||
// Convenience types.
|
||||
//
|
||||
typedef std::vector<Record*> RecordList;
|
||||
typedef std::vector<Record*>::iterator RecordListIter;
|
||||
|
||||
//
|
||||
// Record sort by name function.
|
||||
//
|
||||
struct LessRecord {
|
||||
bool operator()(const Record *Rec1, const Record *Rec2) const {
|
||||
return Rec1->getName() < Rec2->getName();
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// Record sort by field "Name" function.
|
||||
//
|
||||
struct LessRecordFieldName {
|
||||
bool operator()(const Record *Rec1, const Record *Rec2) const {
|
||||
return Rec1->getValueAsString("Name") < Rec2->getValueAsString("Name");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// SubtargetEmitter::run - Main subtarget enumeration emitter.
|
||||
//
|
||||
void SubtargetEmitter::run(std::ostream &OS) {
|
||||
EmitSourceFileHeader("Subtarget Enumeration Source Fragment", OS);
|
||||
|
||||
RecordList Features = Records.getAllDerivedDefinitions("SubtargetFeature");
|
||||
sort(Features.begin(), Features.end(), LessRecord());
|
||||
|
||||
RecordList Processors = Records.getAllDerivedDefinitions("Processor");
|
||||
sort(Processors.begin(), Processors.end(), LessRecordFieldName());
|
||||
|
||||
OS << "namespace llvm {\n\n";
|
||||
|
||||
@ -70,7 +95,7 @@ void SubtargetEmitter::run(std::ostream &OS) {
|
||||
OS << "};\n";
|
||||
}
|
||||
|
||||
{ // Feature key values
|
||||
{ // CPU key values
|
||||
OS << "\n\n"
|
||||
<< "/// Sorted (by key) array of values for CPU subtype.\n"
|
||||
<< "static const SubtargetFeatureKV SubTypeKV[] = {\n";
|
||||
|
Loading…
Reference in New Issue
Block a user