virtual void addTopLevelPass(Pass *P) = 0;
/// Set pass P as the last user of the given analysis passes.
- void setLastUser(std::vector<Pass *> &AnalysisPasses, Pass *P);
+ void setLastUser(SmallVector<Pass *, 12> &AnalysisPasses, Pass *P);
/// Collect passes whose last user is P
- void collectLastUses(std::vector<Pass *> &LastUses, Pass *P);
+ void collectLastUses(SmallVector<Pass *, 12> &LastUses, Pass *P);
/// Find the pass that implements Analysis AID. Search immutable
/// passes and all pass managers. If desired pass is not found
}
/// Set pass P as the last user of the given analysis passes.
-void PMTopLevelManager::setLastUser(std::vector<Pass *> &AnalysisPasses,
+void PMTopLevelManager::setLastUser(SmallVector<Pass *, 12> &AnalysisPasses,
Pass *P) {
- for (std::vector<Pass *>::iterator I = AnalysisPasses.begin(),
+ for (SmallVector<Pass *, 12>::iterator I = AnalysisPasses.begin(),
E = AnalysisPasses.end(); I != E; ++I) {
Pass *AP = *I;
LastUser[AP] = P;
}
/// Collect passes whose last user is P
-void PMTopLevelManager::collectLastUses(std::vector<Pass *> &LastUses,
+void PMTopLevelManager::collectLastUses(SmallVector<Pass *, 12> &LastUses,
Pass *P) {
for (std::map<Pass *, Pass *>::iterator LUI = LastUser.begin(),
LUE = LastUser.end(); LUI != LUE; ++LUI)
void PMDataManager::removeDeadPasses(Pass *P, std::string Msg,
enum PassDebuggingString DBG_STR) {
- std::vector<Pass *> DeadPasses;
+ SmallVector<Pass *, 12> DeadPasses;
// If this is a on the fly manager then it does not have TPM.
if (!TPM)
TPM->collectLastUses(DeadPasses, P);
- for (std::vector<Pass *>::iterator I = DeadPasses.begin(),
+ for (SmallVector<Pass *, 12>::iterator I = DeadPasses.begin(),
E = DeadPasses.end(); I != E; ++I) {
dumpPassInfo(*I, FREEING_MSG, DBG_STR, Msg);
// If a FunctionPass F is the last user of ModulePass info M
// then the F's manager, not F, records itself as a last user of M.
- std::vector<Pass *> TransferLastUses;
+ SmallVector<Pass *, 12> TransferLastUses;
if (ProcessAnalysis) {
// At the moment, this pass is the last user of all required passes.
- std::vector<Pass *> LastUses;
+ SmallVector<Pass *, 12> LastUses;
SmallVector<Pass *, 8> RequiredPasses;
SmallVector<AnalysisID, 8> ReqAnalysisNotAvailable;
// Print list of passes that are last used by P.
void PMDataManager::dumpLastUses(Pass *P, unsigned Offset) const{
- std::vector<Pass *> LUses;
+ SmallVector<Pass *, 12> LUses;
// If this is a on the fly manager then it does not have TPM.
if (!TPM)
TPM->collectLastUses(LUses, P);
- for (std::vector<Pass *>::iterator I = LUses.begin(),
+ for (SmallVector<Pass *, 12>::iterator I = LUses.begin(),
E = LUses.end(); I != E; ++I) {
llvm::cerr << "--" << std::string(Offset*2, ' ');
(*I)->dumpPassStructure(0);
FPP->add(RequiredPass);
// Register P as the last user of RequiredPass.
- std::vector<Pass *> LU;
+ SmallVector<Pass *, 12> LU;
LU.push_back(RequiredPass);
FPP->setLastUser(LU, P);
}