Lines Matching refs:TargetN
45 void LazyCallGraph::EdgeSequence::insertEdgeInternal(Node &TargetN, in insertEdgeInternal() argument
47 EdgeIndexMap.insert({&TargetN, Edges.size()}); in insertEdgeInternal()
48 Edges.emplace_back(TargetN, EK); in insertEdgeInternal()
51 void LazyCallGraph::EdgeSequence::setEdgeKind(Node &TargetN, Edge::Kind EK) { in setEdgeKind() argument
52 Edges[EdgeIndexMap.find(&TargetN)->second].setKind(EK); in setEdgeKind()
55 bool LazyCallGraph::EdgeSequence::removeEdgeInternal(Node &TargetN) { in removeEdgeInternal() argument
56 auto IndexMapI = EdgeIndexMap.find(&TargetN); in removeEdgeInternal()
587 Node &SourceN, Node &TargetN, in switchInternalEdgeToCall() argument
589 assert(!(*SourceN)[TargetN].isCall() && "Must start with a ref edge!"); in switchInternalEdgeToCall()
598 SCC &TargetSCC = *G->lookupSCC(TargetN); in switchInternalEdgeToCall()
603 SourceN->setEdgeKind(TargetN, Edge::Call); in switchInternalEdgeToCall()
616 SourceN->setEdgeKind(TargetN, Edge::Call); in switchInternalEdgeToCall()
692 SourceN->setEdgeKind(TargetN, Edge::Call); in switchInternalEdgeToCall()
727 SourceN->setEdgeKind(TargetN, Edge::Call); in switchInternalEdgeToCall()
734 Node &TargetN) { in switchTrivialInternalEdgeToRef() argument
735 assert((*SourceN)[TargetN].isCall() && "Must start with a call edge!"); in switchTrivialInternalEdgeToRef()
744 assert(G->lookupRefSCC(TargetN) == this && in switchTrivialInternalEdgeToRef()
746 assert(G->lookupSCC(SourceN) != G->lookupSCC(TargetN) && in switchTrivialInternalEdgeToRef()
750 SourceN->setEdgeKind(TargetN, Edge::Ref); in switchTrivialInternalEdgeToRef()
754 LazyCallGraph::RefSCC::switchInternalEdgeToRef(Node &SourceN, Node &TargetN) { in switchInternalEdgeToRef() argument
755 assert((*SourceN)[TargetN].isCall() && "Must start with a call edge!"); in switchInternalEdgeToRef()
764 assert(G->lookupRefSCC(TargetN) == this && in switchInternalEdgeToRef()
767 SCC &TargetSCC = *G->lookupSCC(TargetN); in switchInternalEdgeToRef()
773 SourceN->setEdgeKind(TargetN, Edge::Ref); in switchInternalEdgeToRef()
808 TargetN.DFSNumber = TargetN.LowLink = -1; in switchInternalEdgeToRef()
809 OldSCC.Nodes.push_back(&TargetN); in switchInternalEdgeToRef()
810 G->SCCMap[&TargetN] = &OldSCC; in switchInternalEdgeToRef()
939 Node &TargetN) { in switchOutgoingEdgeToCall() argument
940 assert(!(*SourceN)[TargetN].isCall() && "Must start with a ref edge!"); in switchOutgoingEdgeToCall()
943 assert(G->lookupRefSCC(TargetN) != this && in switchOutgoingEdgeToCall()
946 assert(G->lookupRefSCC(TargetN)->isDescendantOf(*this) && in switchOutgoingEdgeToCall()
952 SourceN->setEdgeKind(TargetN, Edge::Call); in switchOutgoingEdgeToCall()
960 Node &TargetN) { in switchOutgoingEdgeToRef() argument
961 assert((*SourceN)[TargetN].isCall() && "Must start with a call edge!"); in switchOutgoingEdgeToRef()
964 assert(G->lookupRefSCC(TargetN) != this && in switchOutgoingEdgeToRef()
967 assert(G->lookupRefSCC(TargetN)->isDescendantOf(*this) && in switchOutgoingEdgeToRef()
973 SourceN->setEdgeKind(TargetN, Edge::Ref); in switchOutgoingEdgeToRef()
981 Node &TargetN) { in insertInternalRefEdge() argument
983 assert(G->lookupRefSCC(TargetN) == this && "Target must be in this RefSCC."); in insertInternalRefEdge()
985 SourceN->insertEdgeInternal(TargetN, Edge::Ref); in insertInternalRefEdge()
992 void LazyCallGraph::RefSCC::insertOutgoingEdge(Node &SourceN, Node &TargetN, in insertOutgoingEdge() argument
995 SourceN->insertEdgeInternal(TargetN, EK); in insertOutgoingEdge()
999 assert(G->lookupRefSCC(TargetN) != this && in insertOutgoingEdge()
1002 assert(G->lookupRefSCC(TargetN)->isDescendantOf(*this) && in insertOutgoingEdge()
1012 LazyCallGraph::RefSCC::insertIncomingRefEdge(Node &SourceN, Node &TargetN) { in insertIncomingRefEdge() argument
1013 assert(G->lookupRefSCC(TargetN) == this && "Target must be in this RefSCC."); in insertIncomingRefEdge()
1144 SourceN->insertEdgeInternal(TargetN, Edge::Ref); in insertIncomingRefEdge()
1153 void LazyCallGraph::RefSCC::removeOutgoingEdge(Node &SourceN, Node &TargetN) { in removeOutgoingEdge() argument
1156 assert(G->lookupRefSCC(TargetN) != this && in removeOutgoingEdge()
1165 bool Removed = SourceN->removeEdgeInternal(TargetN); in removeOutgoingEdge()
1190 for (Node *TargetN : TargetNs) { in removeInternalRefEdge()
1191 assert(!(*SourceN)[*TargetN].isCall() && in removeInternalRefEdge()
1194 bool Removed = SourceN->removeEdgeInternal(*TargetN); in removeInternalRefEdge()
1201 [&](Node *TargetN) { return &SourceN == TargetN; })) in removeInternalRefEdge() argument
1207 if (llvm::all_of(TargetNs, [&](Node *TargetN) { in removeInternalRefEdge() argument
1208 return G->lookupSCC(*TargetN) == &SourceC; in removeInternalRefEdge()
1408 Node &TargetN) { in insertTrivialCallEdge() argument
1415 SCC &TargetC = *G->lookupSCC(TargetN); in insertTrivialCallEdge()
1423 SourceN->EdgeIndexMap.insert({&TargetN, SourceN->Edges.size()}); in insertTrivialCallEdge()
1432 SourceN->Edges.emplace_back(TargetN, Edge::Call); in insertTrivialCallEdge()
1436 void LazyCallGraph::RefSCC::insertTrivialRefEdge(Node &SourceN, Node &TargetN) { in insertTrivialRefEdge() argument
1442 RefSCC &TargetRC = *G->lookupRefSCC(TargetN); in insertTrivialRefEdge()
1450 SourceN->EdgeIndexMap.insert({&TargetN, SourceN->Edges.size()}); in insertTrivialRefEdge()
1456 SourceN->Edges.emplace_back(TargetN, Edge::Ref); in insertTrivialRefEdge()
1489 void LazyCallGraph::insertEdge(Node &SourceN, Node &TargetN, Edge::Kind EK) { in insertEdge() argument
1493 return SourceN->insertEdgeInternal(TargetN, EK); in insertEdge()
1496 void LazyCallGraph::removeEdge(Node &SourceN, Node &TargetN) { in removeEdge() argument
1500 bool Removed = SourceN->removeEdgeInternal(TargetN); in removeEdge()