TableGen: Enumerate Schedule Model too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187511 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Vincent Lejeune 2013-07-31 19:31:20 +00:00
parent acf7350385
commit 2ca1e4a39c
2 changed files with 12 additions and 0 deletions

View File

@ -952,6 +952,11 @@ XXXInstrInfo.h:
int16_t getNamedOperandIdx(uint16_t Opcode, uint16_t NamedIndex);
} // End namespace XXX
Instruction itineraries can be queried using MCDesc::getSchedClass(). The
value can be named by an enum generated by TableGen in XXXGenInstrInfo.inc.
The name of the schedule classes are the same as provided in XXXSchedule.td plus
a default NoIntinerary class.
Instruction Relation Mapping
----------------------------

View File

@ -545,6 +545,13 @@ void InstrInfoEmitter::emitEnums(raw_ostream &OS) {
<< "\t= " << i << ",\n";
}
OS << " INSTRUCTION_LIST_END = " << NumberedInstructions.size() << "\n";
OS << " };\n";
OS << " enum {\n";
for (unsigned i = 0, e = SchedModels.numInstrSchedClasses(); i != e; ++i) {
OS << " " << SchedModels.getSchedClass(i).Name
<< "\t= " << i << ",\n";
}
OS << " SCHED_LIST_END = " << SchedModels.numInstrSchedClasses() << "\n";
OS << " };\n}\n";
OS << "} // End llvm namespace \n";