[llvm-commits] CVS: llvm/include/llvm/Target/MRegisterInfo.h

Misha Brukman brukman at cs.uiuc.edu
Tue Dec 3 17:11:01 PST 2002


Changes in directory llvm/include/llvm/Target:

MRegisterInfo.h updated: 1.3 -> 1.4

---
Log message:

RegisterInfo now supports handing out caller- and callee-save registers, as
well as building a map from a physical register to its register class.


---
Diffs of the changes:

Index: llvm/include/llvm/Target/MRegisterInfo.h
diff -u llvm/include/llvm/Target/MRegisterInfo.h:1.3 llvm/include/llvm/Target/MRegisterInfo.h:1.4
--- llvm/include/llvm/Target/MRegisterInfo.h:1.3	Fri Nov 22 16:41:23 2002
+++ llvm/include/llvm/Target/MRegisterInfo.h	Tue Dec  3 17:09:53 2002
@@ -10,6 +10,7 @@
 #define LLVM_TARGET_MREGISTERINFO_H
 
 #include "llvm/CodeGen/MachineBasicBlock.h"
+#include <map>
 #include <assert.h>
 
 class Type;
@@ -60,6 +61,15 @@
 
   virtual unsigned getDataSize() const { return 0; }
 
+  virtual void
+  buildReg2RegClassMap(std::map<unsigned,const TargetRegisterClass*>&
+                       Reg2RegClassMap) const
+  {
+    for (unsigned i=0; i < getNumRegs(); ++i) {
+      Reg2RegClassMap[getRegister(i)] = this;
+    }
+  }
+
   //const std::vector<unsigned> &getRegsInClass(void) { return Regs; }
   //void getAliases(void);
 };
@@ -119,6 +129,9 @@
                     unsigned DestReg, unsigned SrcReg,
                     unsigned ImmOffset, unsigned dataSize) const = 0;
 
+  virtual const unsigned* getCalleeSaveRegs() const = 0;
+  virtual const unsigned* getCallerSaveRegs() const = 0;
+
   virtual unsigned getFramePointer() const = 0;
   virtual unsigned getStackPointer() const = 0;
 
@@ -130,6 +143,10 @@
 
   virtual unsigned getNumRegClasses() const = 0;
   virtual const TargetRegisterClass* getRegClassForType(const Type* Ty) const=0;
+
+  virtual void
+  buildReg2RegClassMap(std::map<unsigned,const TargetRegisterClass*>&
+                       Reg2RegClassMap) const=0;
 };
 
 #endif





More information about the llvm-commits mailing list