diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-06-10 18:40:00 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-06-10 18:40:00 +0000 |
commit | dc29c447136aabf05f48a7119e48065c3b4cee9b (patch) | |
tree | 016c3a9f096d356130c373c79921ea124d2ec924 /utils/TableGen/CodeGenTarget.h | |
parent | c610017269cf193d6a16f7288c2525d8d3adb566 (diff) | |
download | external_llvm-dc29c447136aabf05f48a7119e48065c3b4cee9b.zip external_llvm-dc29c447136aabf05f48a7119e48065c3b4cee9b.tar.gz external_llvm-dc29c447136aabf05f48a7119e48065c3b4cee9b.tar.bz2 |
Move some sub-register index calculations to CodeGenRegisters.cpp
Create a new CodeGenRegBank class that will eventually hold all the code
that computes the register structure from Records.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132849 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/CodeGenTarget.h')
-rw-r--r-- | utils/TableGen/CodeGenTarget.h | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/utils/TableGen/CodeGenTarget.h b/utils/TableGen/CodeGenTarget.h index 891b2d5..86050fb 100644 --- a/utils/TableGen/CodeGenTarget.h +++ b/utils/TableGen/CodeGenTarget.h @@ -65,12 +65,11 @@ class CodeGenTarget { Record *TargetRec; mutable DenseMap<const Record*, CodeGenInstruction*> Instructions; + mutable CodeGenRegBank *RegBank; mutable std::vector<CodeGenRegister> Registers; - mutable std::vector<Record*> SubRegIndices; mutable std::vector<CodeGenRegisterClass> RegisterClasses; mutable std::vector<MVT::SimpleValueType> LegalValueTypes; void ReadRegisters() const; - void ReadSubRegIndices() const; void ReadRegisterClasses() const; void ReadInstructions() const; void ReadLegalValueTypes() const; @@ -98,6 +97,9 @@ public: /// Record *getAsmWriter() const; + /// getRegBank - Return the register bank description. + CodeGenRegBank &getRegBank() const; + const std::vector<CodeGenRegister> &getRegisters() const { if (Registers.empty()) ReadRegisters(); return Registers; @@ -107,23 +109,6 @@ public: /// return it. const CodeGenRegister *getRegisterByName(StringRef Name) const; - const std::vector<Record*> &getSubRegIndices() const { - if (SubRegIndices.empty()) ReadSubRegIndices(); - return SubRegIndices; - } - - // Map a SubRegIndex Record to its number. - unsigned getSubRegIndexNo(Record *idx) const { - if (SubRegIndices.empty()) ReadSubRegIndices(); - std::vector<Record*>::const_iterator i = - std::find(SubRegIndices.begin(), SubRegIndices.end(), idx); - assert(i != SubRegIndices.end() && "Not a SubRegIndex"); - return (i - SubRegIndices.begin()) + 1; - } - - // Create a new SubRegIndex with the given name. - Record *createSubRegIndex(const std::string &Name); - const std::vector<CodeGenRegisterClass> &getRegisterClasses() const { if (RegisterClasses.empty()) ReadRegisterClasses(); return RegisterClasses; |