diff options
author | Ruchira Sasanka <sasanka@students.uiuc.edu> | 2001-10-16 01:23:19 +0000 |
---|---|---|
committer | Ruchira Sasanka <sasanka@students.uiuc.edu> | 2001-10-16 01:23:19 +0000 |
commit | c4d4b76efbe57025525edf75d6b91cec363d2fc4 (patch) | |
tree | ccebb2de14ff2dd0f13e3428d54ee1a55c1274d2 /include | |
parent | abe959c0636ef19bdb57b45d85d9639174e18e3a (diff) | |
download | external_llvm-c4d4b76efbe57025525edf75d6b91cec363d2fc4.zip external_llvm-c4d4b76efbe57025525edf75d6b91cec363d2fc4.tar.gz external_llvm-c4d4b76efbe57025525edf75d6b91cec363d2fc4.tar.bz2 |
Added support for caller saving
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@847 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/CodeGen/MachineRegInfo.h | 2 | ||||
-rw-r--r-- | include/llvm/Target/TargetRegInfo.h | 28 |
2 files changed, 28 insertions, 2 deletions
diff --git a/include/llvm/CodeGen/MachineRegInfo.h b/include/llvm/CodeGen/MachineRegInfo.h index fbc32f0..64fd29e 100644 --- a/include/llvm/CodeGen/MachineRegInfo.h +++ b/include/llvm/CodeGen/MachineRegInfo.h @@ -79,7 +79,7 @@ class MachineRegInfo // RegClassArr.pushback( new SparcFloatCCRegClass(2) ); if(DEBUG_RA) - cerr << "Created machine register classes." << endl; + cout << "Created machine register classes." << endl; } diff --git a/include/llvm/Target/TargetRegInfo.h b/include/llvm/Target/TargetRegInfo.h index a8defa4..bf53378 100644 --- a/include/llvm/Target/TargetRegInfo.h +++ b/include/llvm/Target/TargetRegInfo.h @@ -54,7 +54,7 @@ public: // This method should find a color which is not used by neighbors // (i.e., a false position in IsColorUsedArr) and virtual void colorIGNode(IGNode * Node, bool IsColorUsedArr[] ) const = 0; - + virtual bool isRegVolatile(const int Reg) const = 0; MachineRegClassInfo(const unsigned ID, const unsigned NVR, const unsigned NAR): RegClassID(ID), NumOfAvailRegs(NVR), @@ -138,6 +138,22 @@ public: + virtual MachineInstr * + cpReg2RegMI(const unsigned SrcReg, const unsigned DestReg, + const int RegType) const=0; + + virtual MachineInstr * + cpReg2MemMI(const unsigned SrcReg, const unsigned DestPtrReg, + const int Offset, const int RegType) const=0; + + virtual MachineInstr * + cpMem2RegMI(const unsigned SrcPtrReg, const int Offset, + const unsigned DestReg, const int RegType) const=0; + + virtual bool isRegVolatile(const int RegClassID, const int Reg) const=0; + + + //virtual bool handleSpecialMInstr(const MachineInstr * MInst, // LiveRangeInfo& LRI, vector<RegClass *> RCL) const = 0; @@ -153,6 +169,16 @@ public: virtual const string getUnifiedRegName(int UnifiedRegNum) const = 0; + virtual int getRegType(const LiveRange *const LR) const=0; + + + inline virtual unsigned getFramePointer() const=0; + + inline virtual unsigned getStackPointer() const=0; + + inline virtual int getInvalidRegNum() const=0; + + //virtual void printReg(const LiveRange *const LR) const =0; MachineRegInfo() { } |