aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Pass.h23
-rw-r--r--lib/VMCore/Pass.cpp29
2 files changed, 26 insertions, 26 deletions
diff --git a/include/llvm/Pass.h b/include/llvm/Pass.h
index 251620cf9a..dbe485284c 100644
--- a/include/llvm/Pass.h
+++ b/include/llvm/Pass.h
@@ -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; }
diff --git a/lib/VMCore/Pass.cpp b/lib/VMCore/Pass.cpp
index ff9ac928b9..c3c9d456b5 100644
--- a/lib/VMCore/Pass.cpp
+++ b/lib/VMCore/Pass.cpp
@@ -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
//