PEI now passes a RegScavenger ptr to eliminateFrameIndex.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 28 Feb 2007 00:21:17 +0000 (00:21 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 28 Feb 2007 00:21:17 +0000 (00:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34707 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMRegisterInfo.h
lib/Target/Alpha/AlphaRegisterInfo.cpp
lib/Target/Alpha/AlphaRegisterInfo.h
lib/Target/IA64/IA64RegisterInfo.cpp
lib/Target/IA64/IA64RegisterInfo.h
lib/Target/PowerPC/PPCRegisterInfo.cpp
lib/Target/PowerPC/PPCRegisterInfo.h
lib/Target/Sparc/SparcRegisterInfo.cpp
lib/Target/Sparc/SparcRegisterInfo.h
lib/Target/X86/X86RegisterInfo.cpp
lib/Target/X86/X86RegisterInfo.h

index edfc8b4514ffdf635de79a7756d2caaf8b470d17..23805a301551fa8da9ec9642bae127a0633997f6 100644 (file)
@@ -38,8 +38,6 @@ public:
 
   ~ARMRegisterInfo();
 
-  RegScavenger *getRegScavenger() const;
-
   /// getRegisterNumbering - Given the enum value for some register, e.g.
   /// ARM::LR, return the number that it corresponds to (e.g. 14).
   static unsigned getRegisterNumbering(unsigned RegEnum);
@@ -76,13 +74,16 @@ public:
 
   BitVector getReservedRegs(const MachineFunction &MF) const;
 
+  bool requiresRegisterScavenging() const;
+
   bool hasFP(const MachineFunction &MF) const;
 
   void eliminateCallFramePseudoInstr(MachineFunction &MF,
                                      MachineBasicBlock &MBB,
                                      MachineBasicBlock::iterator I) const;
 
-  void eliminateFrameIndex(MachineBasicBlock::iterator II) const;
+  void eliminateFrameIndex(MachineBasicBlock::iterator II,
+                           RegScavenger *RS = NULL) const;
 
   void processFunctionBeforeCalleeSavedScan(MachineFunction &MF) const;
 
index 99007cf95c53dd987a31c5159d41db0313aa901c..aea7c6da51460a897b63faf9e07ccebe1268797e 100644 (file)
@@ -245,8 +245,8 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
 //variable locals
 //<- SP
 
-void
-AlphaRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II) const {
+void AlphaRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
+                                            RegScavenger *RS) const {
   unsigned i = 0;
   MachineInstr &MI = *II;
   MachineBasicBlock &MBB = *MI.getParent();
index b1642f41c5bcc554d08e17603aae31270ff7b38f..1ef6ac0980e62b7a303b82b90abf6fd819926d2e 100644 (file)
@@ -57,7 +57,8 @@ struct AlphaRegisterInfo : public AlphaGenRegisterInfo {
                                      MachineBasicBlock &MBB,
                                      MachineBasicBlock::iterator I) const;
 
-  void eliminateFrameIndex(MachineBasicBlock::iterator II) const;
+  void eliminateFrameIndex(MachineBasicBlock::iterator II,
+                           RegScavenger *RS = NULL) const;
 
   //void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
 
index 19e09caa69c14cd225a1f49065161f2d66f098c0..ebdf1dc419346b1ea50bdb1bfa85493fb7a591ce 100644 (file)
@@ -167,7 +167,8 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
   MBB.erase(I);
 }
 
-void IA64RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II)const{
+void IA64RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
+                                           RegScavenger *RS)const{
   unsigned i = 0;
   MachineInstr &MI = *II;
   MachineBasicBlock &MBB = *MI.getParent();
index 17df2e92904261d6d61cd3153d89acd52d334b76..446d629aaf5d3e2e2e7ab20cf62fc2c94c8d1cc2 100644 (file)
@@ -56,7 +56,8 @@ struct IA64RegisterInfo : public IA64GenRegisterInfo {
                                      MachineBasicBlock &MBB,
                                      MachineBasicBlock::iterator MI) const;
 
-  void eliminateFrameIndex(MachineBasicBlock::iterator MI) const;
+  void eliminateFrameIndex(MachineBasicBlock::iterator MI,
+                           RegScavenger *RS = NULL) const;
 
   void emitPrologue(MachineFunction &MF) const;
   void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
index f8413a0a515a86275e706f7bc81139e375a4f5e8..19ba9bc9150d9015e84a8de0d2cf69266678ae45 100644 (file)
@@ -623,8 +623,8 @@ void PPCRegisterInfo::lowerDynamicAlloc(MachineBasicBlock::iterator II) const {
   MBB.erase(II);
 }
 
-void
-PPCRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II) const {
+void PPCRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
+                                          RegScavenger *RS) const {
   // Get the instruction.
   MachineInstr &MI = *II;
   // Get the instruction's basic block.
index 5ca2d7d2a296cbc6f695e920b0c908296c28bd87..3a46dcd01370e90d063a57e92d5de6fac967a040 100644 (file)
@@ -76,7 +76,8 @@ public:
   bool usesLR(MachineFunction &MF) const;
   
   void lowerDynamicAlloc(MachineBasicBlock::iterator II) const;
-  void eliminateFrameIndex(MachineBasicBlock::iterator II) const;
+  void eliminateFrameIndex(MachineBasicBlock::iterator II,
+                           RegScavenger *RS = NULL) const;
 
   /// determineFrameLayout - Determine the size of the frame and maximum call
   /// frame size.
index f7feb9cd50e5d327d232829246547972d2d7603b..bd784a93f6350ec84e0f77ed72f6501a55d38166 100644 (file)
@@ -155,8 +155,8 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
   MBB.erase(I);
 }
 
-void
-SparcRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II) const {
+void SparcRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
+                                            RegScavenger *RS) const {
   unsigned i = 0;
   MachineInstr &MI = *II;
   while (!MI.getOperand(i).isFrameIndex()) {
index 426cc664a4a448abe00d4771416b15f9ee126c9b..411ce5e054ab0eb0204b5ad3e4078a190b4d3709 100644 (file)
@@ -60,7 +60,8 @@ struct SparcRegisterInfo : public SparcGenRegisterInfo {
                                      MachineBasicBlock &MBB,
                                      MachineBasicBlock::iterator I) const;
 
-  void eliminateFrameIndex(MachineBasicBlock::iterator II) const;
+  void eliminateFrameIndex(MachineBasicBlock::iterator II,
+                           RegScavenger *RS = NULL) const;
 
   void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
 
index 8287306053fdf94126097238dac9653571aebd64..bf7c87219835507287f3aa9c4caa7ba41d7d2c38 100644 (file)
@@ -968,7 +968,8 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
   MBB.erase(I);
 }
 
-void X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II) const{
+void X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
+                                          RegScavenger *RS) const{
   unsigned i = 0;
   MachineInstr &MI = *II;
   MachineFunction &MF = *MI.getParent()->getParent();
index 551661607dbcef7e6106ae52453f0cfe7f058d1f..e1aafab178376dc67baf5bf05e9dc0c2e1200247 100644 (file)
@@ -90,7 +90,8 @@ public:
                                      MachineBasicBlock &MBB,
                                      MachineBasicBlock::iterator MI) const;
 
-  void eliminateFrameIndex(MachineBasicBlock::iterator MI) const;
+  void eliminateFrameIndex(MachineBasicBlock::iterator MI,
+                           RegScavenger *RS = NULL) const;
 
   void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;