diff options
Diffstat (limited to 'utils/TableGen/AsmWriterEmitter.h')
-rw-r--r-- | utils/TableGen/AsmWriterEmitter.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/utils/TableGen/AsmWriterEmitter.h b/utils/TableGen/AsmWriterEmitter.h index 155dfc83c0..c7a9c60bff 100644 --- a/utils/TableGen/AsmWriterEmitter.h +++ b/utils/TableGen/AsmWriterEmitter.h @@ -16,16 +16,35 @@ #define ASMWRITER_EMITTER_H #include "TableGenBackend.h" +#include <map> +#include <vector> +#include <cassert> namespace llvm { - + class AsmWriterInst; + class CodeGenInstruction; + class AsmWriterEmitter : public TableGenBackend { RecordKeeper &Records; + std::map<const CodeGenInstruction*, AsmWriterInst*> CGIAWIMap; + std::vector<const CodeGenInstruction*> NumberedInstructions; public: AsmWriterEmitter(RecordKeeper &R) : Records(R) {} // run - Output the asmwriter, returning true on failure. void run(std::ostream &o); + +private: + AsmWriterInst *getAsmWriterInstByID(unsigned ID) const { + assert(ID < NumberedInstructions.size()); + std::map<const CodeGenInstruction*, AsmWriterInst*>::const_iterator I = + CGIAWIMap.find(NumberedInstructions[ID]); + assert(I != CGIAWIMap.end() && "Didn't find inst!"); + return I->second; + } + void FindUniqueOperandCommands(std::vector<std::string> &UOC, + std::vector<unsigned> &InstIdxs, + unsigned Op) const; }; } #endif |