Changes in directory llvm/utils/TableGen:
CodeGenRegisters.h updated: 1.9 -> 1.10 CodeGenTarget.h updated: 1.20 -> 1.21 --- Log message: Add some methods --- Diffs of the changes: (+22 -1) CodeGenRegisters.h | 2 ++ CodeGenTarget.h | 21 ++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) Index: llvm/utils/TableGen/CodeGenRegisters.h diff -u llvm/utils/TableGen/CodeGenRegisters.h:1.9 llvm/utils/TableGen/CodeGenRegisters.h:1.10 --- llvm/utils/TableGen/CodeGenRegisters.h:1.9 Wed Nov 30 22:51:06 2005 +++ llvm/utils/TableGen/CodeGenRegisters.h Sun Dec 4 20:35:08 2005 @@ -42,6 +42,8 @@ const std::string &getName() const; + unsigned getNumValueTypes() const { return VTs.size(); } + const MVT::ValueType getValueTypeNum(unsigned VTNum) const { if (VTNum < VTs.size()) return VTs[VTNum]; Index: llvm/utils/TableGen/CodeGenTarget.h diff -u llvm/utils/TableGen/CodeGenTarget.h:1.20 llvm/utils/TableGen/CodeGenTarget.h:1.21 --- llvm/utils/TableGen/CodeGenTarget.h:1.20 Wed Nov 30 18:06:14 2005 +++ llvm/utils/TableGen/CodeGenTarget.h Sun Dec 4 20:35:08 2005 @@ -90,7 +90,26 @@ assert(0 && "Didn't find the register class"); abort(); } - + + /// getRegisterClassForRegister - Find the register class that contains the + /// specified physical register. If there register exists in multiple + /// register classes or is not in a register class, return null. + const CodeGenRegisterClass *getRegisterClassForRegister(Record *R) const { + const std::vector<CodeGenRegisterClass> &RCs = getRegisterClasses(); + const CodeGenRegisterClass *FoundRC = 0; + for (unsigned i = 0, e = RCs.size(); i != e; ++i) { + const CodeGenRegisterClass &RC = RegisterClasses[i]; + for (unsigned ei = 0, ee = RC.Elements.size(); ei != ee; ++ei) { + if (R == RC.Elements[ei]) { + if (FoundRC) return 0; // In multiple RC's + FoundRC = &RC; + break; + } + } + } + return FoundRC; + } + const std::vector<MVT::ValueType> &getLegalValueTypes() const { if (LegalValueTypes.empty()) ReadLegalValueTypes(); return LegalValueTypes; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits