diff options
-rw-r--r-- | include/llvm/PassManagers.h | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/include/llvm/PassManagers.h b/include/llvm/PassManagers.h index e918091b4a..17f4a0592f 100644 --- a/include/llvm/PassManagers.h +++ b/include/llvm/PassManagers.h @@ -163,21 +163,26 @@ private: /// PMTopLevelManager manages LastUser info and collects common APIs used by /// top level pass managers. class PMTopLevelManager { -public: +protected: + explicit PMTopLevelManager(PMDataManager *PMDM); virtual unsigned getNumContainedManagers() const { return (unsigned)PassManagers.size(); } - /// Schedule pass P for execution. Make sure that passes required by - /// P are run before P is run. Update analysis info maintained by - /// the manager. Remove dead passes. This is a recursive function. - void schedulePass(Pass *P); + void initializeAllAnalysisInfo(); +private: /// This is implemented by top level pass manager and used by /// schedulePass() to add analysis info passes that are not available. virtual void addTopLevelPass(Pass *P) = 0; +public: + /// Schedule pass P for execution. Make sure that passes required by + /// P are run before P is run. Update analysis info maintained by + /// the manager. Remove dead passes. This is a recursive function. + void schedulePass(Pass *P); + /// Set pass P as the last user of the given analysis passes. void setLastUser(SmallVector<Pass *, 12> &AnalysisPasses, Pass *P); @@ -192,7 +197,6 @@ public: /// Find analysis usage information for the pass P. AnalysisUsage *findAnalysisUsage(Pass *P); - explicit PMTopLevelManager(PMDataManager *PMDM); virtual ~PMTopLevelManager(); /// Add immutable pass and initialize it. @@ -219,8 +223,6 @@ public: void dumpPasses() const; void dumpArguments() const; - void initializeAllAnalysisInfo(); - // Active Pass Managers PMStack activeStack; |