Use setPreservesAll and setPreservesCFG in CodeGen passes.
authorDan Gohman <gohman@apple.com>
Fri, 31 Jul 2009 23:37:33 +0000 (23:37 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 31 Jul 2009 23:37:33 +0000 (23:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77754 91177308-0d34-0410-b5e6-96231b3b80d8

17 files changed:
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/CodeGen/LiveIntervalAnalysis.cpp
lib/CodeGen/LowerSubregs.cpp
lib/CodeGen/MachineModuleInfo.cpp
lib/CodeGen/MachineSink.cpp
lib/CodeGen/PHIElimination.cpp
lib/CodeGen/PostRASchedulerList.cpp
lib/CodeGen/PreAllocSplitting.cpp
lib/CodeGen/PrologEpilogInserter.cpp
lib/CodeGen/RegAllocLinearScan.cpp
lib/CodeGen/RegAllocLocal.cpp
lib/CodeGen/RegAllocPBQP.cpp
lib/CodeGen/RegAllocSimple.cpp
lib/CodeGen/SimpleRegisterCoalescing.cpp
lib/CodeGen/StackSlotColoring.cpp
lib/CodeGen/StrongPHIElimination.cpp
lib/CodeGen/TwoAddressInstructionPass.cpp

index e19631fb4251da8184c00f99cb8593938bc8086f..ebc4b24a0482643b185a1392926c91bb04957414 100644 (file)
@@ -169,6 +169,7 @@ void AsmPrinter::SwitchToSection(const MCSection *NS) {
 }
 
 void AsmPrinter::getAnalysisUsage(AnalysisUsage &AU) const {
+  AU.setPreservesAll();
   MachineFunctionPass::getAnalysisUsage(AU);
   AU.addRequired<GCModuleInfo>();
 }
index 57bcfb52c84214a6029e17c4381d2a04c0047dd6..2c7cc765e4f51c96a0381b7e4f3061be525a9798 100644 (file)
@@ -67,6 +67,7 @@ char LiveIntervals::ID = 0;
 static RegisterPass<LiveIntervals> X("liveintervals", "Live Interval Analysis");
 
 void LiveIntervals::getAnalysisUsage(AnalysisUsage &AU) const {
+  AU.setPreservesCFG();
   AU.addRequired<AliasAnalysis>();
   AU.addPreserved<AliasAnalysis>();
   AU.addPreserved<LiveVariables>();
index d7d50baec96d992bb7b0ab0f015d19a669651377..85729956824b27f0322f2d7cd145bac17821dfce 100644 (file)
@@ -39,6 +39,7 @@ namespace {
     }
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
       AU.addPreservedID(MachineLoopInfoID);
       AU.addPreservedID(MachineDominatorsID);
       MachineFunctionPass::getAnalysisUsage(AU);
index 20b819e8235105680c87668322f5f3b50111f02f..df9d7cab0954929c2ab389eb3c586e7cd11b674e 100644 (file)
@@ -306,6 +306,7 @@ struct DebugLabelFolder : public MachineFunctionPass {
   DebugLabelFolder() : MachineFunctionPass(&ID) {}
 
   virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+    AU.setPreservesCFG();
     AU.addPreservedID(MachineLoopInfoID);
     AU.addPreservedID(MachineDominatorsID);
     MachineFunctionPass::getAnalysisUsage(AU);
index 0e18fa742f5b327cc61dfe170b0d5cbf9ac74552..7717fc88cfed109d34b2350bb7f0369d6aedcb5b 100644 (file)
@@ -40,6 +40,7 @@ namespace {
     virtual bool runOnMachineFunction(MachineFunction &MF);
     
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
       MachineFunctionPass::getAnalysisUsage(AU);
       AU.addRequired<MachineDominatorTree>();
       AU.addPreserved<MachineDominatorTree>();
index 56dca086ef252163c04f285b7370ef8448f5eac3..8071b0a81a89bf0223fa6bf41b221ed7e334faf2 100644 (file)
@@ -41,11 +41,12 @@ X("phi-node-elimination", "Eliminate PHI nodes for register allocation");
 const PassInfo *const llvm::PHIEliminationID = &X;
 
 void llvm::PHIElimination::getAnalysisUsage(AnalysisUsage &AU) const {
-   AU.addPreserved<LiveVariables>();
-   AU.addPreservedID(MachineLoopInfoID);
-   AU.addPreservedID(MachineDominatorsID);
-   MachineFunctionPass::getAnalysisUsage(AU);
- }
+  AU.setPreservesCFG();
+  AU.addPreserved<LiveVariables>();
+  AU.addPreservedID(MachineLoopInfoID);
+  AU.addPreservedID(MachineDominatorsID);
+  MachineFunctionPass::getAnalysisUsage(AU);
+}
 
 bool llvm::PHIElimination::runOnMachineFunction(MachineFunction &Fn) {
   MRI = &Fn.getRegInfo();
index b90a6dde9cca538dcdbdea8d3c3044bb7f2620fe..3cd884763a7ebcbe12824d67a0f75547e75f7c3c 100644 (file)
@@ -59,6 +59,7 @@ namespace {
     PostRAScheduler() : MachineFunctionPass(&ID) {}
 
     void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
       AU.addRequired<MachineDominatorTree>();
       AU.addPreserved<MachineDominatorTree>();
       AU.addRequired<MachineLoopInfo>();
index 580a6d1d9d8e6605f3cf04f9cfe90503d27015fd..46d93394366a30beed8e6e3219f642987ba75b59 100644 (file)
@@ -92,6 +92,7 @@ namespace {
     virtual bool runOnMachineFunction(MachineFunction &MF);
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
       AU.addRequired<LiveIntervals>();
       AU.addPreserved<LiveIntervals>();
       AU.addRequired<LiveStacks>();
index 9d5c55b7a83551fe5ebb4436220fda26939e89f4..5aa37c9044de477fb90f06386628b815a719861b 100644 (file)
@@ -111,6 +111,7 @@ bool PEI::runOnMachineFunction(MachineFunction &Fn) {
 
 #if 0
 void PEI::getAnalysisUsage(AnalysisUsage &AU) const {
+  AU.setPreservesCFG();
   if (ShrinkWrapping || ShrinkWrapFunc != "") {
     AU.addRequired<MachineLoopInfo>();
     AU.addRequired<MachineDominatorTree>();
index 30c602da3b1247e572ac9fa4814217011688854d..fb9745262b7c16435af227a1afd2def9525d24ff 100644 (file)
@@ -145,6 +145,7 @@ namespace {
     }
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
       AU.addRequired<LiveIntervals>();
       if (StrongPHIElim)
         AU.addRequiredID(StrongPHIEliminationID);
index b3d320a914f94fed5d05dabff8769e4a0258323f..e5d3a48babdf48e5cfef485225fb203d9e3590ad 100644 (file)
@@ -153,6 +153,7 @@ namespace {
     }
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
       AU.addRequiredID(PHIEliminationID);
       AU.addRequiredID(TwoAddressInstructionPassID);
       MachineFunctionPass::getAnalysisUsage(AU);
index f22c29482b9f4a26415a5d68ee9d88cb111a75be..862ce00e1c8b2f108b56f701983ecbf566b7322a 100644 (file)
@@ -77,15 +77,16 @@ namespace {
     }
 
     //! PBQP analysis usage.
-    virtual void getAnalysisUsage(AnalysisUsage &au) const {
-      au.addRequired<LiveIntervals>();
-      au.addRequiredTransitive<RegisterCoalescer>();
-      au.addRequired<LiveStacks>();
-      au.addPreserved<LiveStacks>();
-      au.addRequired<MachineLoopInfo>();
-      au.addPreserved<MachineLoopInfo>();
-      au.addRequired<VirtRegMap>();
-      MachineFunctionPass::getAnalysisUsage(au);
+    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
+      AU.addRequired<LiveIntervals>();
+      AU.addRequiredTransitive<RegisterCoalescer>();
+      AU.addRequired<LiveStacks>();
+      AU.addPreserved<LiveStacks>();
+      AU.addRequired<MachineLoopInfo>();
+      AU.addPreserved<MachineLoopInfo>();
+      AU.addRequired<VirtRegMap>();
+      MachineFunctionPass::getAnalysisUsage(AU);
     }
 
     //! Perform register allocation
index 447e54cf790bd179d5d7677626b4a3a5c7f9ce62..2d4b9d6de21bdf7470c102b46a401dd295c957a0 100644 (file)
@@ -70,6 +70,7 @@ namespace {
     bool runOnMachineFunction(MachineFunction &Fn);
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
       AU.addRequiredID(PHIEliminationID);           // Eliminate PHI nodes
       MachineFunctionPass::getAnalysisUsage(AU);
     }
index 2478612d00605f8bbd89b6588fa1cbc5f8905aad..1ff3af92fad6bd2d896e8ec214ab893930dd95d2 100644 (file)
@@ -76,6 +76,7 @@ static RegisterAnalysisGroup<RegisterCoalescer, true/*The Default*/> V(X);
 const PassInfo *const llvm::SimpleRegisterCoalescingID = &X;
 
 void SimpleRegisterCoalescing::getAnalysisUsage(AnalysisUsage &AU) const {
+  AU.setPreservesCFG();
   AU.addRequired<LiveIntervals>();
   AU.addPreserved<LiveIntervals>();
   AU.addRequired<MachineLoopInfo>();
index 17c8929b70aaa8834d87d06f2608c2547e3eb0a9..e491c285ff2e575d7e20a0010fbf804b13da99a0 100644 (file)
@@ -97,6 +97,7 @@ namespace {
       MachineFunctionPass(&ID), ColorWithRegs(RegColor), NextColor(-1) {}
     
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
       AU.addRequired<LiveStacks>();
       AU.addRequired<VirtRegMap>();
       AU.addPreserved<VirtRegMap>();      
index efd19fa999abe5e1a84df8688da92db8b842cfb0..a352e366de4ac50622c2115ef42f89cd088642aa 100644 (file)
@@ -71,6 +71,7 @@ namespace {
     bool runOnMachineFunction(MachineFunction &Fn);
     
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
       AU.addRequired<MachineDominatorTree>();
       AU.addRequired<LiveIntervals>();
       
index d205e07a638ce33e8c523bfb69e84fe9398028b3..b18d1ef3b5b488ec2856952fb807f7ecce1bcaa3 100644 (file)
@@ -113,6 +113,7 @@ namespace {
     TwoAddressInstructionPass() : MachineFunctionPass(&ID) {}
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesCFG();
       AU.addPreserved<LiveVariables>();
       AU.addPreservedID(MachineLoopInfoID);
       AU.addPreservedID(MachineDominatorsID);