diff options
author | Vincent Lejeune <vljn@ovi.com> | 2013-09-03 19:43:28 +0000 |
---|---|---|
committer | Vincent Lejeune <vljn@ovi.com> | 2013-09-03 19:43:28 +0000 |
commit | d8f2eb301c05b2d664a284df7604b82dad7ecab8 (patch) | |
tree | fa5c4e1f9748a6cfe52eb7a8a6f34d48828f0036 | |
parent | 89008539a322b9ce1d66837b3342d0be312bcbba (diff) | |
download | external_llvm-d8f2eb301c05b2d664a284df7604b82dad7ecab8.tar.gz external_llvm-d8f2eb301c05b2d664a284df7604b82dad7ecab8.tar.bz2 external_llvm-d8f2eb301c05b2d664a284df7604b82dad7ecab8.zip |
TableGen: Enumerate Schedule Model too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189839 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | docs/WritingAnLLVMBackend.rst | 5 | ||||
-rw-r--r-- | utils/TableGen/InstrInfoEmitter.cpp | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/docs/WritingAnLLVMBackend.rst b/docs/WritingAnLLVMBackend.rst index 73381b5451..a2a0f6cdca 100644 --- a/docs/WritingAnLLVMBackend.rst +++ b/docs/WritingAnLLVMBackend.rst @@ -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 enumemation in llvm::XXX::Sched namespace 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 ---------------------------- diff --git a/utils/TableGen/InstrInfoEmitter.cpp b/utils/TableGen/InstrInfoEmitter.cpp index cfbf915e78..84bd4dee3a 100644 --- a/utils/TableGen/InstrInfoEmitter.cpp +++ b/utils/TableGen/InstrInfoEmitter.cpp @@ -545,7 +545,15 @@ void InstrInfoEmitter::emitEnums(raw_ostream &OS) { << "\t= " << i << ",\n"; } OS << " INSTRUCTION_LIST_END = " << NumberedInstructions.size() << "\n"; - OS << " };\n}\n"; + OS << " };\n"; + OS << "namespace Sched {\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}\n"; OS << "} // End llvm namespace \n"; OS << "#endif // GET_INSTRINFO_ENUM\n\n"; |