Let MRegisterInfo owns RegScavenger.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34689 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2007-02-27 21:08:07 +00:00
parent 659ba970e3
commit 171eed5334

View File

@ -23,14 +23,15 @@
namespace llvm { namespace llvm {
class Type; class BitVector;
class CalleeSavedInfo;
class MachineFunction; class MachineFunction;
class MachineInstr; class MachineInstr;
class MachineLocation; class MachineLocation;
class MachineMove; class MachineMove;
class RegScavenger;
class TargetRegisterClass; class TargetRegisterClass;
class CalleeSavedInfo; class Type;
class BitVector;
/// TargetRegisterDesc - This record contains all of the information known about /// TargetRegisterDesc - This record contains all of the information known about
/// a particular register. The AliasSet field (if not null) contains a pointer /// a particular register. The AliasSet field (if not null) contains a pointer
@ -213,6 +214,12 @@ protected:
virtual ~MRegisterInfo(); virtual ~MRegisterInfo();
public: public:
/// getRegScavenger - Returns pointer to an instance of register scavenger it
/// the specific target is making use of one.
virtual RegScavenger *getRegScavenger() const {
return NULL;
}
enum { // Define some target independent constants enum { // Define some target independent constants
/// NoRegister - This physical register is not a real target register. It /// NoRegister - This physical register is not a real target register. It
/// is useful as a sentinal. /// is useful as a sentinal.
@ -391,12 +398,6 @@ public:
return false; return false;
} }
/// requiresRegisterScavenging - returns true if the target requires (and
/// can make use of) the register scavenger.
virtual bool requiresRegisterScavenging() const {
return false;
}
/// hasFP - Return true if the specified function should have a dedicated frame /// hasFP - Return true if the specified function should have a dedicated frame
/// pointer register. For most targets this is true only if the function has /// pointer register. For most targets this is true only if the function has
/// variable sized allocas or if frame pointer elimination is disabled. /// variable sized allocas or if frame pointer elimination is disabled.