Lines Matching refs:TargetN
40 void LazyCallGraph::EdgeSequence::insertEdgeInternal(Node &TargetN, in insertEdgeInternal() argument
42 EdgeIndexMap.try_emplace(&TargetN, Edges.size()); in insertEdgeInternal()
43 Edges.emplace_back(TargetN, EK); in insertEdgeInternal()
46 void LazyCallGraph::EdgeSequence::setEdgeKind(Node &TargetN, Edge::Kind EK) { in setEdgeKind() argument
47 Edges[EdgeIndexMap.find(&TargetN)->second].setKind(EK); in setEdgeKind()
50 bool LazyCallGraph::EdgeSequence::removeEdgeInternal(Node &TargetN) { in removeEdgeInternal() argument
51 auto IndexMapI = EdgeIndexMap.find(&TargetN); in removeEdgeInternal()
577 Node &SourceN, Node &TargetN, in switchInternalEdgeToCall() argument
579 assert(!(*SourceN)[TargetN].isCall() && "Must start with a ref edge!"); in switchInternalEdgeToCall()
588 SCC &TargetSCC = *G->lookupSCC(TargetN); in switchInternalEdgeToCall()
593 SourceN->setEdgeKind(TargetN, Edge::Call); in switchInternalEdgeToCall()
606 SourceN->setEdgeKind(TargetN, Edge::Call); in switchInternalEdgeToCall()
682 SourceN->setEdgeKind(TargetN, Edge::Call); in switchInternalEdgeToCall()
717 SourceN->setEdgeKind(TargetN, Edge::Call); in switchInternalEdgeToCall()
724 Node &TargetN) { in switchTrivialInternalEdgeToRef() argument
725 assert((*SourceN)[TargetN].isCall() && "Must start with a call edge!"); in switchTrivialInternalEdgeToRef()
733 assert(G->lookupRefSCC(TargetN) == this && "Target must be in this RefSCC."); in switchTrivialInternalEdgeToRef()
734 assert(G->lookupSCC(SourceN) != G->lookupSCC(TargetN) && in switchTrivialInternalEdgeToRef()
738 SourceN->setEdgeKind(TargetN, Edge::Ref); in switchTrivialInternalEdgeToRef()
742 LazyCallGraph::RefSCC::switchInternalEdgeToRef(Node &SourceN, Node &TargetN) { in switchInternalEdgeToRef() argument
743 assert((*SourceN)[TargetN].isCall() && "Must start with a call edge!"); in switchInternalEdgeToRef()
751 assert(G->lookupRefSCC(TargetN) == this && "Target must be in this RefSCC."); in switchInternalEdgeToRef()
753 SCC &TargetSCC = *G->lookupSCC(TargetN); in switchInternalEdgeToRef()
759 SourceN->setEdgeKind(TargetN, Edge::Ref); in switchInternalEdgeToRef()
794 TargetN.DFSNumber = TargetN.LowLink = -1; in switchInternalEdgeToRef()
795 OldSCC.Nodes.push_back(&TargetN); in switchInternalEdgeToRef()
796 G->SCCMap[&TargetN] = &OldSCC; in switchInternalEdgeToRef()
923 Node &TargetN) { in switchOutgoingEdgeToCall() argument
924 assert(!(*SourceN)[TargetN].isCall() && "Must start with a ref edge!"); in switchOutgoingEdgeToCall()
927 assert(G->lookupRefSCC(TargetN) != this && in switchOutgoingEdgeToCall()
930 assert(G->lookupRefSCC(TargetN)->isDescendantOf(*this) && in switchOutgoingEdgeToCall()
936 SourceN->setEdgeKind(TargetN, Edge::Call); in switchOutgoingEdgeToCall()
944 Node &TargetN) { in switchOutgoingEdgeToRef() argument
945 assert((*SourceN)[TargetN].isCall() && "Must start with a call edge!"); in switchOutgoingEdgeToRef()
948 assert(G->lookupRefSCC(TargetN) != this && in switchOutgoingEdgeToRef()
951 assert(G->lookupRefSCC(TargetN)->isDescendantOf(*this) && in switchOutgoingEdgeToRef()
957 SourceN->setEdgeKind(TargetN, Edge::Ref); in switchOutgoingEdgeToRef()
965 Node &TargetN) { in insertInternalRefEdge() argument
967 assert(G->lookupRefSCC(TargetN) == this && "Target must be in this RefSCC."); in insertInternalRefEdge()
969 SourceN->insertEdgeInternal(TargetN, Edge::Ref); in insertInternalRefEdge()
976 void LazyCallGraph::RefSCC::insertOutgoingEdge(Node &SourceN, Node &TargetN, in insertOutgoingEdge() argument
979 SourceN->insertEdgeInternal(TargetN, EK); in insertOutgoingEdge()
983 assert(G->lookupRefSCC(TargetN) != this && in insertOutgoingEdge()
986 assert(G->lookupRefSCC(TargetN)->isDescendantOf(*this) && in insertOutgoingEdge()
996 LazyCallGraph::RefSCC::insertIncomingRefEdge(Node &SourceN, Node &TargetN) { in insertIncomingRefEdge() argument
997 assert(G->lookupRefSCC(TargetN) == this && "Target must be in this RefSCC."); in insertIncomingRefEdge()
1128 SourceN->insertEdgeInternal(TargetN, Edge::Ref); in insertIncomingRefEdge()
1137 void LazyCallGraph::RefSCC::removeOutgoingEdge(Node &SourceN, Node &TargetN) { in removeOutgoingEdge() argument
1140 assert(G->lookupRefSCC(TargetN) != this && in removeOutgoingEdge()
1149 bool Removed = SourceN->removeEdgeInternal(TargetN); in removeOutgoingEdge()
1174 for (Node *TargetN : TargetNs) { in removeInternalRefEdge()
1175 assert(!(*SourceN)[*TargetN].isCall() && in removeInternalRefEdge()
1178 bool Removed = SourceN->removeEdgeInternal(*TargetN); in removeInternalRefEdge()
1185 [&](Node *TargetN) { return &SourceN == TargetN; })) in removeInternalRefEdge() argument
1191 if (llvm::all_of(TargetNs, [&](Node *TargetN) { in removeInternalRefEdge() argument
1192 return G->lookupSCC(*TargetN) == &SourceC; in removeInternalRefEdge()
1390 Node &TargetN) { in insertTrivialCallEdge() argument
1397 SCC &TargetC = *G->lookupSCC(TargetN); in insertTrivialCallEdge()
1405 SourceN->EdgeIndexMap.try_emplace(&TargetN, SourceN->Edges.size()); in insertTrivialCallEdge()
1414 SourceN->Edges.emplace_back(TargetN, Edge::Call); in insertTrivialCallEdge()
1418 void LazyCallGraph::RefSCC::insertTrivialRefEdge(Node &SourceN, Node &TargetN) { in insertTrivialRefEdge() argument
1424 RefSCC &TargetRC = *G->lookupRefSCC(TargetN); in insertTrivialRefEdge()
1432 SourceN->EdgeIndexMap.try_emplace(&TargetN, SourceN->Edges.size()); in insertTrivialRefEdge()
1439 SourceN->Edges.emplace_back(TargetN, Edge::Ref); in insertTrivialRefEdge()
1478 void LazyCallGraph::insertEdge(Node &SourceN, Node &TargetN, Edge::Kind EK) { in insertEdge() argument
1482 return SourceN->insertEdgeInternal(TargetN, EK); in insertEdge()
1485 void LazyCallGraph::removeEdge(Node &SourceN, Node &TargetN) { in removeEdge() argument
1489 bool Removed = SourceN->removeEdgeInternal(TargetN); in removeEdge()