- // Access AnalysisResolver_New
- inline void setResolver(AnalysisResolver_New *AR) { Resolver_New = AR; }
- inline AnalysisResolver_New *getResolver() { return Resolver_New; }
+ /// Each pass is responsible for assigning a pass manager to itself.
+ /// PMS is the stack of available pass manager.
+ virtual void assignPassManager(PMStack &,
+ PassManagerType = PMT_Unknown) {}
+ /// Check if available pass managers are suitable for this pass or not.
+ virtual void preparePassManager(PMStack &) {}
+
+ /// Return what kind of Pass Manager can manage this pass.
+ virtual PassManagerType getPotentialPassManagerType() const {
+ return PMT_Unknown;
+ }
+
+ // Access AnalysisResolver
+ inline void setResolver(AnalysisResolver *AR) {
+ assert (!Resolver && "Resolver is already set");
+ Resolver = AR;
+ }
+ inline AnalysisResolver *getResolver() {
+ assert (Resolver && "Resolver is not set");
+ return Resolver;
+ }