64 markAllAnalysesPreserved();
66 auto &CG = getAnalysis<CallGraphAnalysis>();
68 os <<
"SCCs for the program in PostOrder:";
69 for (
auto SCCI = llvm::scc_begin<const llzk::CallGraph *>(&CG.getCallGraph()); !SCCI.isAtEnd();
71 const std::vector<const CallGraphNode *> &nextSCC = *SCCI;
72 os <<
"\nSCC #" << ++sccNum <<
": ";
80 if (CGN->isExternal()) {
81 os <<
"external node";
83 os << CGN->getCalledFunction().getFullyQualifiedName();
87 if (nextSCC.size() == 1 && SCCI.hasCycle()) {
88 os <<
" (Has self-loop).";