Lines Matching refs:RefSCC

202 LazyCallGraph::RefSCC::RefSCC(LazyCallGraph &G) : G(&G) {}  in RefSCC()  function in LazyCallGraph::RefSCC
204 void LazyCallGraph::RefSCC::dump() const { in dump()
209 void LazyCallGraph::RefSCC::verify() { in verify()
249 bool LazyCallGraph::RefSCC::isDescendantOf(const RefSCC &C) const { in isDescendantOf()
251 SmallVector<const RefSCC *, 4> AncestorWorklist; in isDescendantOf()
254 const RefSCC *AncestorC = AncestorWorklist.pop_back_val(); in isDescendantOf()
257 for (const RefSCC *ParentC : AncestorC->Parents) in isDescendantOf()
265 LazyCallGraph::RefSCC::switchInternalEdgeToCall(Node &SourceN, Node &TargetN) { in switchInternalEdgeToCall()
481 void LazyCallGraph::RefSCC::switchInternalEdgeToRef(Node &SourceN, in switchInternalEdgeToRef()
672 void LazyCallGraph::RefSCC::switchOutgoingEdgeToCall(Node &SourceN, in switchOutgoingEdgeToCall()
692 void LazyCallGraph::RefSCC::switchOutgoingEdgeToRef(Node &SourceN, in switchOutgoingEdgeToRef()
712 void LazyCallGraph::RefSCC::insertInternalRefEdge(Node &SourceN, in insertInternalRefEdge()
725 void LazyCallGraph::RefSCC::insertOutgoingEdge(Node &SourceN, Node &TargetN, in insertOutgoingEdge()
732 RefSCC &TargetC = *G->lookupRefSCC(TargetN); in insertOutgoingEdge()
747 SmallVector<LazyCallGraph::RefSCC *, 1>
748 LazyCallGraph::RefSCC::insertIncomingRefEdge(Node &SourceN, Node &TargetN) { in insertIncomingRefEdge()
754 SmallVector<RefSCC *, 1> Connected; in insertIncomingRefEdge()
756 RefSCC &SourceC = *G->lookupRefSCC(SourceN); in insertIncomingRefEdge()
778 SmallPtrSet<RefSCC *, 8> ConnectedSet; in insertIncomingRefEdge()
782 SmallVector<std::pair<RefSCC *, parent_iterator>, 8> DFSStack; in insertIncomingRefEdge()
783 SmallPtrSet<RefSCC *, 8> Visited; in insertIncomingRefEdge()
788 RefSCC *C = DFSPair.first; in insertIncomingRefEdge()
793 RefSCC &Parent = *I++; in insertIncomingRefEdge()
840 for (RefSCC *C : reverse(Connected)) { in insertIncomingRefEdge()
845 for (RefSCC *ParentC : C->Parents) in insertIncomingRefEdge()
862 RefSCC &ChildRC = *G->lookupRefSCC(*E.getNode()); in insertIncomingRefEdge()
903 void LazyCallGraph::RefSCC::removeOutgoingEdge(Node &SourceN, Node &TargetN) { in removeOutgoingEdge()
907 RefSCC &TargetRC = *G->lookupRefSCC(TargetN); in removeOutgoingEdge()
923 RefSCC &OtherChildRC = *G->lookupRefSCC(*E.getNode()); in removeOutgoingEdge()
960 SmallVector<LazyCallGraph::RefSCC *, 1>
961 LazyCallGraph::RefSCC::removeInternalRefEdge(Node &SourceN, Node &TargetN) { in removeInternalRefEdge()
969 SmallVector<RefSCC *, 1> Result; in removeInternalRefEdge()
1088 RefSCC &ChildRC = *G->lookupRefSCC(ChildN); in removeInternalRefEdge()
1166 RefSCC &RC = *Result[SCCNumber - 1]; in removeInternalRefEdge()
1177 for (RefSCC *RC : Result) in removeInternalRefEdge()
1197 RefSCC &ChildRC = *G->lookupRefSCC(*E.getNode()); in removeInternalRefEdge()
1211 [&](RefSCC *C) { return C == this; })) in removeInternalRefEdge()
1266 SmallVector<RefSCC *, 16> Worklist(LeafRefSCCs.begin(), LeafRefSCCs.end()); in updateGraphPtrs()
1269 RefSCC &C = *Worklist.pop_back_val(); in updateGraphPtrs()
1271 for (RefSCC &ParentC : C.parents()) in updateGraphPtrs()
1282 void LazyCallGraph::buildSCCs(RefSCC &RC, node_stack_range Nodes) { in buildSCCs()
1397 void LazyCallGraph::connectRefSCC(RefSCC &RC) { in connectRefSCC()
1407 RefSCC &ChildRC = *lookupRefSCC(*E.getNode()); in connectRefSCC()
1419 LazyCallGraph::RefSCC *LazyCallGraph::getNextRefSCCInPostOrder() { in getNextRefSCCInPostOrder()
1502 RefSCC *NewRC = createRefSCC(*this); in getNextRefSCCInPostOrder()
1535 static void printRefSCC(raw_ostream &OS, LazyCallGraph::RefSCC &C) { in printRefSCC()
1555 for (LazyCallGraph::RefSCC &C : G.postorder_ref_sccs()) in run()