diff options
author | Devang Patel <dpatel@apple.com> | 2006-11-15 01:48:14 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2006-11-15 01:48:14 +0000 |
commit | 4a3fa4ff26fa4de8a14e5134180c71e51f96d804 (patch) | |
tree | 5d6a081ddaf5da470eae7a45b7fd3ee29c866f2d /llvm/lib | |
parent | ff631ae6009e1d3b755afa7eee3d3fbb2b29692d (diff) | |
download | bcm5719-llvm-4a3fa4ff26fa4de8a14e5134180c71e51f96d804.tar.gz bcm5719-llvm-4a3fa4ff26fa4de8a14e5134180c71e51f96d804.zip |
Tidy up marking of last analysis user pass.
llvm-svn: 31746
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/VMCore/PassManager.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/llvm/lib/VMCore/PassManager.cpp b/llvm/lib/VMCore/PassManager.cpp index 379162be36d..d0d54d4c4f7 100644 --- a/llvm/lib/VMCore/PassManager.cpp +++ b/llvm/lib/VMCore/PassManager.cpp @@ -83,22 +83,9 @@ public: return PassVector.end(); } - inline void setLastUser(Pass *P, Pass *LU) { + inline void setLastUser(Pass *P, Pass *LU) { LastUser[P] = LU; // TODO : Check if pass P is available. - - // Prolong live range of analyses that are needed after an analysis pass - // is destroyed, for querying by subsequent passes - AnalysisUsage AnUsage; - P->getAnalysisUsage(AnUsage); - const std::vector<AnalysisID> &IDs = AnUsage.getRequiredTransitiveSet(); - for (std::vector<AnalysisID>::const_iterator I = IDs.begin(), - E = IDs.end(); I != E; ++I) { - Pass *AnalysisPass = getAnalysisPass(*I); // getAnalysisPassFromManager(*I); - assert (AnalysisPass && "Analysis pass is not available"); - setLastUser(AnalysisPass, LU); - } - } private: @@ -671,8 +658,17 @@ void PassManagerImpl_New::schedulePass(Pass *P) { schedulePass(AnalysisPass); } setLastUser (AnalysisPass, P); + + // Prolong live range of analyses that are needed after an analysis pass + // is destroyed, for querying by subsequent passes + const std::vector<AnalysisID> &IDs = AnUsage.getRequiredTransitiveSet(); + for (std::vector<AnalysisID>::const_iterator I = IDs.begin(), + E = IDs.end(); I != E; ++I) { + Pass *AP = getAnalysisPassFromManager(*I); + assert (AP && "Analysis pass is not available"); + setLastUser(AP, P); + } } - addPass(P); } |