From: Devang Patel Date: Wed, 15 Nov 2006 01:48:14 +0000 (+0000) Subject: Tidy up marking of last analysis user pass. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=861967815396df9f8b01327197fd2715d2c7555c;p=oota-llvm.git Tidy up marking of last analysis user pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31746 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/PassManager.cpp b/lib/VMCore/PassManager.cpp index 379162be36d..d0d54d4c4f7 100644 --- a/lib/VMCore/PassManager.cpp +++ b/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 &IDs = AnUsage.getRequiredTransitiveSet(); - for (std::vector::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 &IDs = AnUsage.getRequiredTransitiveSet(); + for (std::vector::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); }