Move FunctionPass::doesNotModifyCFG to AnalysisUsage::preservesCFG()
authorChris Lattner <sabre@nondot.org>
Sun, 28 Apr 2002 21:25:41 +0000 (21:25 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 28 Apr 2002 21:25:41 +0000 (21:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2384 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Pass.h
lib/VMCore/Pass.cpp

index 251620cf9af5c21677e3233b45368f5b41448c86..dbe485284c9f0d50211fe7f46f83beb8f0595322 100644 (file)
@@ -138,18 +138,6 @@ struct FunctionPass : public Pass {
   //
   bool run(Function *F);
 
-protected:
-  // doesNotModifyCFG - This function should be called by our subclasses to
-  // implement the getAnalysisUsage virtual function, iff they do not:
-  //
-  //  1. Add or remove basic blocks from the function
-  //  2. Modify terminator instructions in any way.
-  //
-  // This function annotates the AnalysisUsage info object to say that analyses
-  // that only depend on the CFG are preserved by this pass.
-  //
-  void doesNotModifyCFG(AnalysisUsage &Info);
-
 private:
   friend class PassManagerT<Module>;
   friend class PassManagerT<Function>;
@@ -277,6 +265,17 @@ public:
   void setPreservesAll() { PreservesAll = true; }
   bool preservesAll() const { return PreservesAll; }
 
+  // preservesCFG - This function should be called to by the pass, iff they do
+  // not:
+  //
+  //  1. Add or remove basic blocks from the function
+  //  2. Modify terminator instructions in any way.
+  //
+  // This function annotates the AnalysisUsage info object to say that analyses
+  // that only depend on the CFG are preserved by this pass.
+  //
+  void preservesCFG();
+
   const std::vector<AnalysisID> &getRequiredSet() const { return Required; }
   const std::vector<AnalysisID> &getPreservedSet() const { return Preserved; }
   const std::vector<AnalysisID> &getProvidedSet() const { return Provided; }
index ff9ac928b9698283b64b8c65d2f93a8aa3d2cf19..c3c9d456b5e387b1d5d6d4c1fac9985441fffe9e 100644 (file)
@@ -24,6 +24,21 @@ void AnalysisResolver::setAnalysisResolver(Pass *P, AnalysisResolver *AR) {
   P->Resolver = AR;
 }
 
+
+// preservesCFG - This function should be called to by the pass, iff they do
+// not:
+//
+//  1. Add or remove basic blocks from the function
+//  2. Modify terminator instructions in any way.
+//
+// This function annotates the AnalysisUsage info object to say that analyses
+// that only depend on the CFG are preserved by this pass.
+//
+void AnalysisUsage::preservesCFG() {
+  // FIXME: implement preservesCFG
+}
+
+
 //===----------------------------------------------------------------------===//
 // PassManager implementation - The PassManager class is a simple Pimpl class
 // that wraps the PassManagerT template.
@@ -142,20 +157,6 @@ void FunctionPass::addToPassManager(PassManagerT<Function> *PM,
   PM->addPass(this, AU);
 }
 
-// doesNotModifyCFG - This function should be called by our subclasses to
-// implement the getAnalysisUsage virtual function, iff they do not:
-//
-//  1. Add or remove basic blocks from the function
-//  2. Modify terminator instructions in any way.
-//
-// This function annotates the AnalysisUsage info object to say that analyses
-// that only depend on the CFG are preserved by this pass.
-//
-void FunctionPass::doesNotModifyCFG(AnalysisUsage &Info) {
-
-}
-
-
 //===----------------------------------------------------------------------===//
 // BasicBlockPass Implementation
 //