From f58183dae1f9cb64181ed8efbb75e3ae46c9d9b8 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 12 Dec 2006 23:09:32 +0000 Subject: [PATCH] collectRequiredAnalysisPasses(). Include RequiredTrainsitiveSet also. llvm-svn: 32508 --- llvm/lib/VMCore/PassManager.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/llvm/lib/VMCore/PassManager.cpp b/llvm/lib/VMCore/PassManager.cpp index 1f1890c31f60..3498fcf62f9c 100644 --- a/llvm/lib/VMCore/PassManager.cpp +++ b/llvm/lib/VMCore/PassManager.cpp @@ -678,6 +678,14 @@ void PMDataManager::collectRequiredAnalysisPasses(std::vector &RP, assert (AnalysisPass && "Analysis pass is not available"); RP.push_back(AnalysisPass); } + + const std::vector &IDs = AnUsage.getRequiredTransitiveSet(); + for (std::vector::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 -- GitLab