diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-06-15 00:20:40 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-06-15 00:20:40 +0000 |
commit | 7b9cafde5e3faec22bbfbbc90cca0876968abad9 (patch) | |
tree | 3799aac0ece80d63d64d22d24487f6e5478de834 /utils/TableGen/CodeGenRegisters.h | |
parent | 189531f317d0b3a082f78cc2da44128e4ff8e17d (diff) | |
download | external_llvm-7b9cafde5e3faec22bbfbbc90cca0876968abad9.zip external_llvm-7b9cafde5e3faec22bbfbbc90cca0876968abad9.tar.gz external_llvm-7b9cafde5e3faec22bbfbbc90cca0876968abad9.tar.bz2 |
Move the list of register classes into CodeGenRegBank as well.
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133029 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/CodeGenRegisters.h')
-rw-r--r-- | utils/TableGen/CodeGenRegisters.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/utils/TableGen/CodeGenRegisters.h b/utils/TableGen/CodeGenRegisters.h index 233ceb2..26305b6 100644 --- a/utils/TableGen/CodeGenRegisters.h +++ b/utils/TableGen/CodeGenRegisters.h @@ -153,6 +153,9 @@ namespace llvm { std::vector<CodeGenRegister> Registers; DenseMap<Record*, CodeGenRegister*> Def2Reg; + std::vector<CodeGenRegisterClass> RegClasses; + DenseMap<Record*, CodeGenRegisterClass*> Def2RC; + // Composite SubRegIndex instances. // Map (SubRegIndex, SubRegIndex) -> SubRegIndex. typedef DenseMap<std::pair<Record*, Record*>, Record*> CompositeMap; @@ -181,6 +184,20 @@ namespace llvm { // Find a register from its Record def. CodeGenRegister *getReg(Record*); + const std::vector<CodeGenRegisterClass> &getRegClasses() { + return RegClasses; + } + + // Find a register class from its def. + CodeGenRegisterClass *getRegClass(Record*); + + /// getRegisterClassForRegister - Find the register class that contains the + /// specified physical register. If the register is not in a register + /// class, return null. If the register is in multiple classes, and the + /// classes have a superset-subset relationship and the same set of types, + /// return the superclass. Otherwise return null. + const CodeGenRegisterClass* getRegClassForRegister(Record *R); + // Computed derived records such as missing sub-register indices. void computeDerivedInfo(); |