[llvm-commits] CVS: llvm/include/llvm/Pass.h
Devang Patel
dpatel at apple.com
Tue Jan 16 11:46:26 PST 2007
Changes in directory llvm/include/llvm:
Pass.h updated: 1.73 -> 1.74
---
Log message:
Setup pass manager before scheduling required analysis.
---
Diffs of the changes: (+9 -2)
Pass.h | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
Index: llvm/include/llvm/Pass.h
diff -u llvm/include/llvm/Pass.h:1.73 llvm/include/llvm/Pass.h:1.74
--- llvm/include/llvm/Pass.h:1.73 Wed Jan 10 19:10:24 2007
+++ llvm/include/llvm/Pass.h Tue Jan 16 13:46:08 2007
@@ -108,6 +108,8 @@
void dump() const; // dump - call print(std::cerr, 0);
virtual void assignPassManager(PMStack &PMS) {}
+ virtual void setupPassManager(PMStack &PMS) {}
+
// Access AnalysisResolver
inline void setResolver(AnalysisResolver *AR) { Resolver = AR; }
inline AnalysisResolver *getResolver() { return Resolver; }
@@ -201,6 +203,7 @@
virtual bool runPass(BasicBlock&) { return false; }
virtual void assignPassManager(PMStack &PMS);
+
// Force out-of-line virtual method.
virtual ~ModulePass();
};
@@ -267,6 +270,7 @@
bool run(Function &F);
virtual void assignPassManager(PMStack &PMS);
+ virtual void setupPassManager(PMStack &PMS);
};
@@ -321,6 +325,7 @@
virtual bool runPass(BasicBlock &BB);
virtual void assignPassManager(PMStack &PMS);
+ virtual void setupPassManager(PMStack &PMS);
};
/// Different types of internal pass managers. External pass managers
@@ -337,8 +342,10 @@
/// PMStack
/// Top level pass manager (see PasManager.cpp) maintains active Pass Managers
-/// using PMStack. Each Pass implements assignPassManager() to connect itself
-/// with appropriate manager. assignPassManager() walks PMStack to find
+/// using PMStack. Each Pass implements setupPassManager() and
+/// assignPassManager() to connect itself with appropriate manager.
+/// setupPassManager() creates new pass manager if required before adding
+/// required analysis passes. assignPassManager() walks PMStack to find
/// suitable manager.
///
/// PMStack is just a wrapper around standard deque that overrides pop() and
More information about the llvm-commits
mailing list