Lines Matching refs:SCC

56 // All call edges go up between SCCs, and clockwise around the SCC.
208 LazyCallGraph::SCC &D = *SCCI++;
222 LazyCallGraph::SCC &C = *SCCI++;
236 LazyCallGraph::SCC &B = *SCCI++;
252 LazyCallGraph::SCC &A = *SCCI++;
327 // Two interlocking cycles. The really useful thing about this SCC is that it
329 // children of each node in the SCC.
361 LazyCallGraph::SCC &SCC = *SCCI++;
369 EXPECT_EQ(&SCC, CG.lookupSCC(A));
370 EXPECT_EQ(&SCC, CG.lookupSCC(B));
371 EXPECT_EQ(&SCC, CG.lookupSCC(C));
372 EXPECT_EQ(&SCC, CG.lookupSCC(D));
373 EXPECT_EQ(&SCC, CG.lookupSCC(E));
401 for (LazyCallGraph::SCC &C : CG.postorder_sccs())
408 LazyCallGraph::SCC &AC = *CG.lookupSCC(A);
409 LazyCallGraph::SCC &BC = *CG.lookupSCC(B);
410 LazyCallGraph::SCC &CC = *CG.lookupSCC(C);
411 LazyCallGraph::SCC &DC = *CG.lookupSCC(D);
450 for (LazyCallGraph::SCC &C : CG.postorder_sccs())
465 LazyCallGraph::SCC &AC = *CG.lookupSCC(A1);
466 LazyCallGraph::SCC &BC = *CG.lookupSCC(B1);
467 LazyCallGraph::SCC &CC = *CG.lookupSCC(C1);
468 LazyCallGraph::SCC &DC = *CG.lookupSCC(D1);
496 // Make sure we have the correct nodes in the SCC sets.
527 LazyCallGraph::SCC &DC = *SCCI;
531 LazyCallGraph::SCC &CC = *SCCI;
557 // Make sure we have the correct nodes in the SCC sets.
568 LazyCallGraph::SCC &BC = *SCCI;
575 LazyCallGraph::SCC &AC = *SCCI;
598 for (LazyCallGraph::SCC &C : CG.postorder_sccs())
603 LazyCallGraph::SCC &AC = *CG.lookupSCC(A);
604 LazyCallGraph::SCC &BC = *CG.lookupSCC(B);
638 LazyCallGraph::SCC &SCC = *SCCI++;
644 EXPECT_EQ(&SCC, CG1.lookupSCC(A));
645 EXPECT_EQ(&SCC, CG1.lookupSCC(B));
646 EXPECT_EQ(&SCC, CG1.lookupSCC(C));
649 SCC.insertIntraSCCEdge(A, C);
651 EXPECT_EQ(&SCC, CG1.lookupSCC(A));
652 EXPECT_EQ(&SCC, CG1.lookupSCC(B));
653 EXPECT_EQ(&SCC, CG1.lookupSCC(C));
656 SCC.insertIntraSCCEdge(A, A);
658 EXPECT_EQ(&SCC, CG1.lookupSCC(A));
659 EXPECT_EQ(&SCC, CG1.lookupSCC(B));
660 EXPECT_EQ(&SCC, CG1.lookupSCC(C));
664 // A nice fully connected (including self-edges) SCC.
691 LazyCallGraph::SCC &SCC = *SCCI++;
697 EXPECT_EQ(&SCC, CG1.lookupSCC(A));
698 EXPECT_EQ(&SCC, CG1.lookupSCC(B));
699 EXPECT_EQ(&SCC, CG1.lookupSCC(C));
703 SmallVector<LazyCallGraph::SCC *, 1> NewSCCs = SCC.removeIntraSCCEdge(B, A);
705 EXPECT_EQ(&SCC, CG1.lookupSCC(A));
706 EXPECT_EQ(&SCC, CG1.lookupSCC(B));
707 EXPECT_EQ(&SCC, CG1.lookupSCC(C));
709 // Remove the edge from c -> a, which should leave 'a' in the original SCC
710 // and form a new SCC for 'b' and 'c'.
711 NewSCCs = SCC.removeIntraSCCEdge(C, A);
713 EXPECT_EQ(&SCC, CG1.lookupSCC(A));
714 EXPECT_EQ(1, std::distance(SCC.begin(), SCC.end()));
715 LazyCallGraph::SCC *SCC2 = CG1.lookupSCC(B);