Mark several codegen passes as preserving all analysis.
authorEvan Cheng <evan.cheng@apple.com>
Mon, 22 Sep 2008 20:58:04 +0000 (20:58 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Mon, 22 Sep 2008 20:58:04 +0000 (20:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56469 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/BranchFolding.cpp
lib/CodeGen/LiveStackAnalysis.cpp
lib/CodeGen/LoopAligner.cpp
lib/CodeGen/LowerSubregs.cpp
lib/CodeGen/MachineModuleInfo.cpp
lib/CodeGen/PrologEpilogInserter.cpp
lib/CodeGen/SimpleRegisterCoalescing.cpp
lib/CodeGen/StackSlotColoring.cpp
lib/Target/X86/X86FloatingPoint.cpp

index 1051dc7a11509b1a5bb465d33e8b4fbe6e16a36d..882826534d1cdf4f1857603141ef03abda6cfb9b 100644 (file)
@@ -48,12 +48,12 @@ namespace {
   struct VISIBILITY_HIDDEN BranchFolder : public MachineFunctionPass {
     static char ID;
     explicit BranchFolder(bool defaultEnableTailMerge) : 
-        MachineFunctionPass(&ID) {
-          switch (FlagEnableTailMerge) {
-          case cl::BOU_UNSET: EnableTailMerge = defaultEnableTailMerge; break;
-          case cl::BOU_TRUE: EnableTailMerge = true; break;
-          case cl::BOU_FALSE: EnableTailMerge = false; break;
-          }
+      MachineFunctionPass(&ID) {
+      switch (FlagEnableTailMerge) {
+        case cl::BOU_UNSET: EnableTailMerge = defaultEnableTailMerge; break;
+        case cl::BOU_TRUE: EnableTailMerge = true; break;
+        case cl::BOU_FALSE: EnableTailMerge = false; break;
+      }
     }
 
     virtual bool runOnMachineFunction(MachineFunction &MF);
index 9358c105705d144b4eae4cf894c7708bdb28307b..2baf699c66c71f576e71cd5f1ec9301a1f8d3346 100644 (file)
@@ -26,6 +26,7 @@ static RegisterPass<LiveStacks> X("livestacks", "Live Stack Slot Analysis");
 
 void LiveStacks::getAnalysisUsage(AnalysisUsage &AU) const {
   AU.setPreservesAll();
+  MachineFunctionPass::getAnalysisUsage(AU);
 }
 
 void LiveStacks::releaseMemory() {
index 51c635661f214cd152e114a248a97d9923f1b597..906e888242862913a9184dba591d50e3173c5269 100644 (file)
@@ -34,6 +34,7 @@ namespace {
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.addRequired<MachineLoopInfo>();
       AU.addPreserved<MachineLoopInfo>();
+      AU.setPreservesAll();
       MachineFunctionPass::getAnalysisUsage(AU);
     }
   };
index 6e115ddb137ac358ea6cd7a3d903bb41ea8c0293..5430d4f5d34e569b318b0658a2a6742666f718df 100644 (file)
@@ -30,6 +30,11 @@ namespace {
       return "Subregister lowering instruction pass";
     }
 
+    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesAll();
+      MachineFunctionPass::getAnalysisUsage(AU);
+    }
+
     /// runOnMachineFunction - pass entry point
     bool runOnMachineFunction(MachineFunction&);
     
index 69f8d3c014c852c9192f5a981579bce937c90029..9843ff279a866eb58e573a983a00e70a1fe1c98b 100644 (file)
@@ -2013,6 +2013,11 @@ struct DebugLabelFolder : public MachineFunctionPass {
   static char ID;
   DebugLabelFolder() : MachineFunctionPass(&ID) {}
 
+  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+    AU.setPreservesAll();
+    MachineFunctionPass::getAnalysisUsage(AU);
+  }
+
   virtual bool runOnMachineFunction(MachineFunction &MF);
   virtual const char *getPassName() const { return "Label Folder"; }
 };
index 51d3698dc58f7247fa682e1a4c4a8f24b08e08ae..8efef1beb577058ed79cc794af7344b6cd8cdb25 100644 (file)
@@ -41,6 +41,11 @@ namespace {
       return "Prolog/Epilog Insertion & Frame Finalization";
     }
 
+    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesAll();
+      MachineFunctionPass::getAnalysisUsage(AU);
+    }
+
     /// runOnMachineFunction - Insert prolog/epilog code and replace abstract
     /// frame indexes with appropriate references.
     ///
index 88996575db86540fa0723b6a4192d6a1f981bf53..05e0505f0ba5669c53f9aa7e8fe5e7cb2d4439ec 100644 (file)
@@ -67,13 +67,13 @@ static RegisterAnalysisGroup<RegisterCoalescer, true/*The Default*/> V(X);
 const PassInfo *const llvm::SimpleRegisterCoalescingID = &X;
 
 void SimpleRegisterCoalescing::getAnalysisUsage(AnalysisUsage &AU) const {
+  AU.addRequired<LiveIntervals>();
   AU.addPreserved<LiveIntervals>();
+  AU.addRequired<MachineLoopInfo>();
   AU.addPreserved<MachineLoopInfo>();
   AU.addPreservedID(MachineDominatorsID);
   AU.addPreservedID(PHIEliminationID);
   AU.addPreservedID(TwoAddressInstructionPassID);
-  AU.addRequired<LiveIntervals>();
-  AU.addRequired<MachineLoopInfo>();
   MachineFunctionPass::getAnalysisUsage(AU);
 }
 
index ab980a14ec6454866691d9f7c9ddcc3f124fde80..1b5d41795cc2bed45148b54f1b142ab8f6824657 100644 (file)
@@ -66,6 +66,7 @@ namespace {
     
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.addRequired<LiveStacks>();
+      AU.setPreservesAll();
       MachineFunctionPass::getAnalysisUsage(AU);
     }
 
index 26bf0aa81b3c54419c53fa726530555b41204303..758ed495c47bf82945e2ccf05faa77099239c5d3 100644 (file)
@@ -55,6 +55,11 @@ namespace {
     static char ID;
     FPS() : MachineFunctionPass(&ID) {}
 
+    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesAll();
+      MachineFunctionPass::getAnalysisUsage(AU);
+    }
+
     virtual bool runOnMachineFunction(MachineFunction &MF);
 
     virtual const char *getPassName() const { return "X86 FP Stackifier"; }