X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FAnalysis%2FIPA%2FCallGraphSCCPass.cpp;h=03db7f940b62dee1be4f533786ab5b79fe760fe3;hb=b7211a2ce13a0365e0e1dd2f27adda2ee3d1288b;hp=f05c8b86f8e329941409d01413108c9f770db240;hpb=1997473cf72957d0e70322e2fe6fe2ab141c58a6;p=oota-llvm.git diff --git a/lib/Analysis/IPA/CallGraphSCCPass.cpp b/lib/Analysis/IPA/CallGraphSCCPass.cpp index f05c8b86f8e..03db7f940b6 100644 --- a/lib/Analysis/IPA/CallGraphSCCPass.cpp +++ b/lib/Analysis/IPA/CallGraphSCCPass.cpp @@ -31,7 +31,7 @@ class CGPassManager : public ModulePass, public PMDataManager { public: static char ID; - CGPassManager(int Depth) + explicit CGPassManager(int Depth) : ModulePass((intptr_t)&ID), PMDataManager(Depth) { } /// run - Execute all of the passes scheduled for execution. Keep track of @@ -107,7 +107,7 @@ bool CGPassManager::runOnModule(Module &M) { for (unsigned i = 0, e = SCC.size(); i != e; ++i) { Function *F = SCC[i]->getFunction(); if (F) { - dumpPassInfo(P, EXECUTION_MSG, ON_FUNCTION_MSG, F->getName()); + dumpPassInfo(P, EXECUTION_MSG, ON_FUNCTION_MSG, F->getNameStart()); Changed |= FPP->runOnFunction(*F); } } @@ -117,7 +117,8 @@ bool CGPassManager::runOnModule(Module &M) { if (Changed) dumpPassInfo(P, MODIFICATION_MSG, ON_CG_MSG, ""); dumpAnalysisSetInfo("Preserved", P, AnUsage.getPreservedSet()); - + + verifyPreservedAnalysis(P); removeNotPreservedAnalysis(P); recordAvailableAnalysis(P); removeDeadPasses(P, "", ON_CG_MSG); @@ -153,12 +154,9 @@ bool CGPassManager::doFinalization(CallGraph &CG) { void CallGraphSCCPass::assignPassManager(PMStack &PMS, PassManagerType PreferredType) { // Find CGPassManager - while (!PMS.empty()) { - if (PMS.top()->getPassManagerType() > PMT_CallGraphPassManager) - PMS.pop(); - else; - break; - } + while (!PMS.empty() && + PMS.top()->getPassManagerType() > PMT_CallGraphPassManager) + PMS.pop(); CGPassManager *CGP = dynamic_cast(PMS.top()); @@ -178,7 +176,7 @@ void CallGraphSCCPass::assignPassManager(PMStack &PMS, // [3] Assign manager to manage this new manager. This may create // and push new managers into PMS Pass *P = dynamic_cast(CGP); - P->assignPassManager(PMS); + TPM->schedulePass(P); // [4] Push new manager into PMS PMS.push(CGP);