Lines Matching defs:SCC
12 // call-graph in SCC order: that is, they process function bottom-up, except for
51 STATISTIC(MaxSCCIterations, "Maximum CGSCCPassMgr iterations on one SCC");
78 // CGPassManager walks SCC and it needs CallGraph.
90 errs().indent(Offset*2) << "Call Graph SCC Pass Manager\n";
174 // Run pass P on all functions in the current SCC.
189 LLVM_DEBUG(dbgs() << "CGSCCPASSMGR: Pass Dirtied SCC: " << P->getPassName()
209 LLVM_DEBUG(dbgs() << "CGSCCPASSMGR: Refreshing SCC with " << CurSCC.size()
217 // Scan all functions in the SCC.
411 dbgs() << "CGSCCPASSMGR: Refreshed SCC is now:\n";
417 dbgs() << "CGSCCPASSMGR: SCC Refresh didn't change call graph.\n";
424 /// Execute the body of the entire pass manager on the specified SCC.
440 // Run all passes on current SCC.
445 // If we're in -debug-pass=Executions mode, construct the SCC node list,
468 // Actually run this pass on the current SCC.
493 // functionpass), refresh it before we move on to the next SCC.
505 // Walk the callgraph in bottom-up SCC order.
510 // Copy the current SCC and increment past it so that the pass can hack
511 // on the SCC if it wants to without invalidating our iterator.
517 // functions in this SCC. However, we support iterative compilation in the
532 << " SCCPASSMGR: Re-visiting SCC, iteration #" << Iteration
583 /// This informs the SCC and the pass manager that the specified
588 assert(i != Nodes.size() && "Node not in SCC");
625 // Create new Call Graph SCC Pass Manager if it does not exist.
678 bool runOnSCC(CallGraphSCC &SCC) override {
691 SCC.getCallGraph().getModule().print(OS, nullptr);
695 for (CallGraphNode *CGN : SCC) {
712 SCC.getCallGraph().getModule().print(OS, nullptr);
729 static std::string getDescription(const CallGraphSCC &SCC) {
730 std::string Desc = "SCC (";
732 for (CallGraphNode *CGN : SCC) {
744 bool CallGraphSCCPass::skipSCC(CallGraphSCC &SCC) const {
746 SCC.getCallGraph().getModule().getContext().getOptPassGate();
748 !Gate.shouldRunPass(this->getPassName(), getDescription(SCC));