diff --git a/llvm/include/llvm/PassManagers.h b/llvm/include/llvm/PassManagers.h index 17f4a0592fbb..1f00b3ebce1b 100644 --- a/llvm/include/llvm/PassManagers.h +++ b/llvm/include/llvm/PassManagers.h @@ -184,10 +184,10 @@ public: void schedulePass(Pass *P); /// Set pass P as the last user of the given analysis passes. - void setLastUser(SmallVector &AnalysisPasses, Pass *P); + void setLastUser(SmallVectorImpl &AnalysisPasses, Pass *P); /// Collect passes whose last user is P - void collectLastUses(SmallVector &LastUses, Pass *P); + void collectLastUses(SmallVectorImpl &LastUses, Pass *P); /// Find the pass that implements Analysis AID. Search immutable /// passes and all pass managers. If desired pass is not found @@ -205,7 +205,7 @@ public: ImmutablePasses.push_back(P); } - inline SmallVector& getImmutablePasses() { + inline SmallVectorImpl& getImmutablePasses() { return ImmutablePasses; } @@ -313,8 +313,8 @@ public: /// Populate RequiredPasses with analysis pass that are required by /// pass P and are available. Populate ReqPassNotAvailable with analysis /// pass that are required by pass P but are not available. - void collectRequiredAnalysis(SmallVector &RequiredPasses, - SmallVector &ReqPassNotAvailable, + void collectRequiredAnalysis(SmallVectorImpl &RequiredPasses, + SmallVectorImpl &ReqPassNotAvailable, Pass *P); /// All Required analyses should be available to the pass as it runs! Here diff --git a/llvm/lib/VMCore/PassManager.cpp b/llvm/lib/VMCore/PassManager.cpp index 57d6b8c0deb4..39925c948a52 100644 --- a/llvm/lib/VMCore/PassManager.cpp +++ b/llvm/lib/VMCore/PassManager.cpp @@ -497,9 +497,9 @@ PMTopLevelManager::PMTopLevelManager(PMDataManager *PMDM) { } /// Set pass P as the last user of the given analysis passes. -void PMTopLevelManager::setLastUser(SmallVector &AnalysisPasses, +void PMTopLevelManager::setLastUser(SmallVectorImpl &AnalysisPasses, Pass *P) { - for (SmallVector::iterator I = AnalysisPasses.begin(), + for (SmallVectorImpl::iterator I = AnalysisPasses.begin(), E = AnalysisPasses.end(); I != E; ++I) { Pass *AP = *I; LastUser[AP] = P; @@ -520,7 +520,7 @@ void PMTopLevelManager::setLastUser(SmallVector &AnalysisPasses, } /// Collect passes whose last user is P -void PMTopLevelManager::collectLastUses(SmallVector &LastUses, +void PMTopLevelManager::collectLastUses(SmallVectorImpl &LastUses, Pass *P) { DenseMap >::iterator DMI = InversedLastUser.find(P); @@ -613,7 +613,7 @@ void PMTopLevelManager::schedulePass(Pass *P) { Pass *PMTopLevelManager::findAnalysisPass(AnalysisID AID) { // Check pass managers - for (SmallVector::iterator I = PassManagers.begin(), + for (SmallVectorImpl::iterator I = PassManagers.begin(), E = PassManagers.end(); I != E; ++I) if (Pass *P = (*I)->findAnalysisPass(AID, false)) return P; @@ -964,8 +964,8 @@ void PMDataManager::add(Pass *P, bool ProcessAnalysis) { /// Populate RP with analysis pass that are required by /// pass P and are available. Populate RP_NotAvail with analysis /// pass that are required by pass P but are not available. -void PMDataManager::collectRequiredAnalysis(SmallVector&RP, - SmallVector &RP_NotAvail, +void PMDataManager::collectRequiredAnalysis(SmallVectorImpl &RP, + SmallVectorImpl &RP_NotAvail, Pass *P) { AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); const AnalysisUsage::VectorType &RequiredSet = AnUsage->getRequiredSet(); @@ -1037,7 +1037,7 @@ void PMDataManager::dumpLastUses(Pass *P, unsigned Offset) const{ TPM->collectLastUses(LUses, P); - for (SmallVector::iterator I = LUses.begin(), + for (SmallVectorImpl::iterator I = LUses.begin(), E = LUses.end(); I != E; ++I) { llvm::dbgs() << "--" << std::string(Offset*2, ' '); (*I)->dumpPassStructure(0); @@ -1045,7 +1045,7 @@ void PMDataManager::dumpLastUses(Pass *P, unsigned Offset) const{ } void PMDataManager::dumpPassArguments() const { - for (SmallVector::const_iterator I = PassVector.begin(), + for (SmallVectorImpl::const_iterator I = PassVector.begin(), E = PassVector.end(); I != E; ++I) { if (PMDataManager *PMD = (*I)->getAsPMDataManager()) PMD->dumpPassArguments(); @@ -1162,7 +1162,7 @@ Pass *PMDataManager::getOnTheFlyPass(Pass *P, AnalysisID PI, Function &F) { // Destructor PMDataManager::~PMDataManager() { - for (SmallVector::iterator I = PassVector.begin(), + for (SmallVectorImpl::iterator I = PassVector.begin(), E = PassVector.end(); I != E; ++I) delete *I; }