aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/VMCore/PassManager.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/VMCore/PassManager.cpp b/lib/VMCore/PassManager.cpp
index 1f1890c31f..3498fcf62f 100644
--- a/lib/VMCore/PassManager.cpp
+++ b/lib/VMCore/PassManager.cpp
@@ -678,6 +678,14 @@ void PMDataManager::collectRequiredAnalysisPasses(std::vector<Pass *> &RP,
assert (AnalysisPass && "Analysis pass is not available");
RP.push_back(AnalysisPass);
}
+
+ const std::vector<AnalysisID> &IDs = AnUsage.getRequiredTransitiveSet();
+ for (std::vector<AnalysisID>::const_iterator I = IDs.begin(),
+ E = IDs.end(); I != E; ++I) {
+ Pass *AnalysisPass = findAnalysisPass(*I, true);
+ assert (AnalysisPass && "Analysis pass is not available");
+ RP.push_back(AnalysisPass);
+ }
}
// All Required analyses should be available to the pass as it runs! Here