aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/PassAnalysisSupport.h14
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