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

Evan Cheng evan.cheng at apple.com
Tue Feb 27 16:17:10 PST 2007



Changes in directory llvm/include/llvm/Target:

MRegisterInfo.h updated: 1.98 -> 1.99
---
Log message:

MRegisterInfo disowns RegScavenger. It's immutable.

---
Diffs of the changes:  (+8 -7)

 MRegisterInfo.h |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)


Index: llvm/include/llvm/Target/MRegisterInfo.h
diff -u llvm/include/llvm/Target/MRegisterInfo.h:1.98 llvm/include/llvm/Target/MRegisterInfo.h:1.99
--- llvm/include/llvm/Target/MRegisterInfo.h:1.98	Tue Feb 27 15:08:07 2007
+++ llvm/include/llvm/Target/MRegisterInfo.h	Tue Feb 27 18:16:54 2007
@@ -214,12 +214,6 @@
   virtual ~MRegisterInfo();
 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
     /// NoRegister - This physical register is not a real target register.  It
     /// is useful as a sentinal.
@@ -398,6 +392,12 @@
     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
   /// pointer register. For most targets this is true only if the function has
   /// variable sized allocas or if frame pointer elimination is disabled.
@@ -452,7 +452,8 @@
   /// finished product. The return value is the number of instructions
   /// added to (negative if removed from) the basic block.
   ///
-  virtual void eliminateFrameIndex(MachineBasicBlock::iterator MI) const = 0;
+  virtual void eliminateFrameIndex(MachineBasicBlock::iterator MI,
+                                   RegScavenger *RS = NULL) const = 0;
 
   /// emitProlog/emitEpilog - These methods insert prolog and epilog code into
   /// the function. The return value is the number of instructions






More information about the llvm-commits mailing list