* Un "protect" the getAnalysis<> functions

* Add a new initializePass() method to ImmutablePass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5629 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-02-26 19:10:28 +00:00
parent dcc0ac9eb7
commit d2c0b28c33

View File

@ -142,8 +142,6 @@ public:
return dynamic_cast<AnalysisType*>(Resolver->getAnalysisToUpdate(PI)); return dynamic_cast<AnalysisType*>(Resolver->getAnalysisToUpdate(PI));
} }
protected:
/// getAnalysis<AnalysisType>() - This function is used by subclasses to get /// getAnalysis<AnalysisType>() - This function is used by subclasses to get
/// to the analysis information that they claim to use by overriding the /// to the analysis information that they claim to use by overriding the
/// getAnalysisUsage function. /// getAnalysisUsage function.
@ -203,8 +201,16 @@ inline std::ostream &operator<<(std::ostream &OS, const Pass &P) {
/// "basic" versions of AnalysisGroups. /// "basic" versions of AnalysisGroups.
/// ///
struct ImmutablePass : public Pass { struct ImmutablePass : public Pass {
/// initializePass - This method may be overriden by immutable passes to allow
/// them to perform various initialization actions they require. This is
/// primarily because an ImmutablePass can "require" another ImmutablePass,
/// and if it does, the overloaded version of initializePass may get access to
/// these passes with getAnalysis<>.
///
virtual void initializePass() {}
// ImmutablePasses are never run. /// ImmutablePasses are never run.
///
virtual bool run(Module &M) { return false; } virtual bool run(Module &M) { return false; }
private: private: