diff options
-rw-r--r-- | include/llvm/PassAnalysisSupport.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/include/llvm/PassAnalysisSupport.h b/include/llvm/PassAnalysisSupport.h index 75434a25ef..0454f2143f 100644 --- a/include/llvm/PassAnalysisSupport.h +++ b/include/llvm/PassAnalysisSupport.h @@ -44,24 +44,26 @@ public: // for a pass. // AnalysisUsage &addRequiredID(AnalysisID ID) { + assert(ID && "Pass class not registered!"); Required.push_back(ID); return *this; } template<class PassClass> AnalysisUsage &addRequired() { - assert(Pass::getClassPassInfo<PassClass>() && "Pass class not registered!"); - Required.push_back(Pass::getClassPassInfo<PassClass>()); - return *this; + return addRequiredID(Pass::getClassPassInfo<PassClass>()); } - template<class PassClass> - AnalysisUsage &addRequiredTransitive() { - AnalysisID ID = Pass::getClassPassInfo<PassClass>(); + AnalysisUsage &addRequiredTransitiveID(AnalysisID ID) { assert(ID && "Pass class not registered!"); Required.push_back(ID); RequiredTransitive.push_back(ID); return *this; } + template<class PassClass> + AnalysisUsage &addRequiredTransitive() { + AnalysisID ID = Pass::getClassPassInfo<PassClass>(); + return addRequiredTransitiveID(ID); + } // addPreserved - Add the specified ID to the set of analyses preserved by // this pass |