diff options
Diffstat (limited to 'llvm/utils/TableGen/CodeGenTarget.cpp')
-rw-r--r-- | llvm/utils/TableGen/CodeGenTarget.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp index 9e52cbc39a2..e0d251f74f0 100644 --- a/llvm/utils/TableGen/CodeGenTarget.cpp +++ b/llvm/utils/TableGen/CodeGenTarget.cpp @@ -103,11 +103,24 @@ Record *CodeGenTarget::getAsmWriter() const { return TargetRec->getValueAsDef("AssemblyWriter"); } +void CodeGenTarget::ReadRegisters() const { + std::vector<Record*> Regs = Records.getAllDerivedDefinitions("Register"); + if (Regs.empty()) + throw std::string("No 'Register' subclasses defined!"); + + Registers.reserve(Regs.size()); + Registers.assign(Regs.begin(), Regs.end()); +} + +const std::string &CodeGenRegister::getName() const { + return TheDef->getName(); +} + void CodeGenTarget::ReadInstructions() const { std::vector<Record*> Insts = Records.getAllDerivedDefinitions("Instruction"); - if (Insts.size() == 0) + if (Insts.empty()) throw std::string("No 'Instruction' subclasses defined!"); std::string InstFormatName = |