aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRuchira Sasanka <sasanka@students.uiuc.edu>2001-10-16 01:23:19 +0000
committerRuchira Sasanka <sasanka@students.uiuc.edu>2001-10-16 01:23:19 +0000
commitc4d4b76efbe57025525edf75d6b91cec363d2fc4 (patch)
treeccebb2de14ff2dd0f13e3428d54ee1a55c1274d2 /include
parentabe959c0636ef19bdb57b45d85d9639174e18e3a (diff)
downloadexternal_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.h2
-rw-r--r--include/llvm/Target/TargetRegInfo.h28
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() { }