Reimplement removeDeadPasses().

llvm-svn: 32344
This commit is contained in:
Devang Patel 2006-12-08 00:37:52 +00:00
parent 085cfdbfdc
commit 17ad096dd8
1 changed files with 15 additions and 1 deletions

View File

@ -522,7 +522,21 @@ void PMDataManager::removeNotPreservedAnalysis(Pass *P) {
/// Remove analysis passes that are not used any longer
void PMDataManager::removeDeadPasses(Pass *P) {
// TODO : reimplement
std::vector<Pass *> DeadPasses;
TPM->collectLastUses(DeadPasses, P);
for (std::vector<Pass *>::iterator I = DeadPasses.begin(),
E = DeadPasses.end(); I != E; ++I) {
(*I)->releaseMemory();
std::map<AnalysisID, Pass*>::iterator Pos =
AvailableAnalysis.find((*I)->getPassInfo());
// It is possible that deadPass is already removed from the AvailableAnalysis
if (Pos != AvailableAnalysis.end())
AvailableAnalysis.erase(Pos);
}
}
/// Add pass P into the PassVector. Update