diff options
author | Devang Patel <dpatel@apple.com> | 2006-12-12 23:09:32 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2006-12-12 23:09:32 +0000 |
commit | f58183dae1f9cb64181ed8efbb75e3ae46c9d9b8 (patch) | |
tree | 1449d123b0c07890367ebab535d11cc6174da829 | |
parent | be6bd55e96203f3d96a757083a068eb288c88a8e (diff) | |
download | bcm5719-llvm-f58183dae1f9cb64181ed8efbb75e3ae46c9d9b8.tar.gz bcm5719-llvm-f58183dae1f9cb64181ed8efbb75e3ae46c9d9b8.zip |
collectRequiredAnalysisPasses().
Include RequiredTrainsitiveSet also.
llvm-svn: 32508
-rw-r--r-- | llvm/lib/VMCore/PassManager.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/VMCore/PassManager.cpp b/llvm/lib/VMCore/PassManager.cpp index 1f1890c31f6..3498fcf62f9 100644 --- a/llvm/lib/VMCore/PassManager.cpp +++ b/llvm/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 |