Expose passinfo from BreakCriticalEdges pass so that it may be "Required" by
[oota-llvm.git] / include / llvm / PassAnalysisSupport.h
index 43c353d4d9e02cff973036c3520fae0320ff80a9..490c5bf12c64637068b886669f937d38d29ef9a8 100644 (file)
@@ -39,6 +39,7 @@ public:
   }
   template<class PassClass>
   AnalysisUsage &addRequired() {
+    assert(Pass::getClassPassInfo<PassClass>() && "Pass class not registered!");
     Required.push_back(Pass::getClassPassInfo<PassClass>());
     return *this;
   }
@@ -53,6 +54,7 @@ public:
 
   template<class PassClass>
   AnalysisUsage &addPreserved() {
+    assert(Pass::getClassPassInfo<PassClass>() && "Pass class not registered!");
     Preserved.push_back(Pass::getClassPassInfo<PassClass>());
     return *this;
   }
@@ -84,14 +86,14 @@ public:
 struct AnalysisResolver {
   virtual Pass *getAnalysisOrNullUp(AnalysisID ID) const = 0;
   virtual Pass *getAnalysisOrNullDown(AnalysisID ID) const = 0;
-  Pass *getAnalysis(AnalysisID ID) {
+  Pass *getAnalysis(AnalysisID ID) const {
     Pass *Result = getAnalysisOrNullUp(ID);
     assert(Result && "Pass has an incorrect analysis uses set!");
     return Result;
   }
 
   // getAnalysisToUpdate - Return an analysis result or null if it doesn't exist
-  Pass *getAnalysisToUpdate(AnalysisID ID) {
+  Pass *getAnalysisToUpdate(AnalysisID ID) const {
     return getAnalysisOrNullUp(ID);
   }