Lines Matching refs:Node

61 LazyCallGraph::Node::Node(LazyCallGraph &G, Function &F)
96 void LazyCallGraph::Node::insertEdgeInternal(Function &Target, Edge::Kind EK) {
97 if (Node *N = G->lookup(Target))
104 void LazyCallGraph::Node::insertEdgeInternal(Node &TargetN, Edge::Kind EK) {
109 void LazyCallGraph::Node::setEdgeKind(Function &TargetF, Edge::Kind EK) {
113 void LazyCallGraph::Node::removeEdgeInternal(Function &Target) {
122 void LazyCallGraph::Node::dump() const {
188 for (Node *N : Nodes) {
191 "Node does not map to this SCC!");
232 for (Node &N : SourceSCC)
265 LazyCallGraph::RefSCC::switchInternalEdgeToCall(Node &SourceN, Node &TargetN) {
346 for (Node &N : C)
407 for (Node &N : C)
458 for (Node *N : C->Nodes)
481 void LazyCallGraph::RefSCC::switchInternalEdgeToRef(Node &SourceN,
482 Node &TargetN) {
519 SmallVector<std::pair<Node *, call_edge_iterator>, 16> DFSStack;
520 SmallVector<Node *, 16> PendingSCCStack;
524 SmallVector<Node *, 16> Worklist;
526 for (Node *N : Worklist) {
544 for (Node *RootN : Worklist) {
562 Node *N;
567 Node &ChildN = *I->getNode();
595 for (Node &N : make_range(OldSCC.begin() + OldSize, OldSCC.end())) {
639 [RootDFSNumber](Node *N) {
646 for (Node &N : *NewSCCs.back()) {
672 void LazyCallGraph::RefSCC::switchOutgoingEdgeToCall(Node &SourceN,
673 Node &TargetN) {
692 void LazyCallGraph::RefSCC::switchOutgoingEdgeToRef(Node &SourceN,
693 Node &TargetN) {
712 void LazyCallGraph::RefSCC::insertInternalRefEdge(Node &SourceN,
713 Node &TargetN) {
725 void LazyCallGraph::RefSCC::insertOutgoingEdge(Node &SourceN, Node &TargetN,
748 LazyCallGraph::RefSCC::insertIncomingRefEdge(Node &SourceN, Node &TargetN) {
857 for (Node &N : InnerC) {
903 void LazyCallGraph::RefSCC::removeOutgoingEdge(Node &SourceN, Node &TargetN) {
920 for (Node &N : *InnerC) {
961 LazyCallGraph::RefSCC::removeInternalRefEdge(Node &SourceN, Node &TargetN) {
982 SmallDenseMap<Node *, int> PostOrderMapping;
998 for (Node &N : TargetC)
1003 SmallVector<Node *, 8> Worklist;
1008 for (Node &N : *C)
1014 auto MarkNodeForSCCNumber = [&PostOrderMapping](Node &N, int Number) {
1019 SmallVector<std::pair<Node *, edge_iterator>, 4> DFSStack;
1020 SmallVector<Node *, 4> PendingRefSCCStack;
1027 Node *RootN = Worklist.pop_back_val();
1040 Node *N;
1049 Node &ChildN = I->getNode(*G);
1125 [RootDFSNumber](Node *N) {
1133 for (Node *N : RefSCCNodes)
1158 for (Node &N : *C)
1194 for (Node &N : *C) {
1229 void LazyCallGraph::insertEdge(Node &SourceN, Function &Target, Edge::Kind EK) {
1236 void LazyCallGraph::removeEdge(Node &SourceN, Function &Target) {
1243 LazyCallGraph::Node &LazyCallGraph::insertInto(Function &F, Node *&MappedN) {
1244 return *new (MappedN = BPA.Allocate()) Node(*this, F);
1250 SmallVector<Node *, 16> Worklist;
1252 if (Node *EntryN = E.getNode())
1256 Node *N = Worklist.pop_back_val();
1259 if (Node *TargetN = E.getNode())
1286 for (Node *N : Nodes) {
1300 SmallVector<std::pair<Node *, call_edge_iterator>, 16> DFSStack;
1301 SmallVector<Node *, 16> PendingSCCStack;
1304 for (Node *RootN : Nodes) {
1322 Node *N;
1327 Node &ChildN = *I->getNode();
1376 [RootDFSNumber](Node *N) {
1382 for (Node &N : *RC.SCCs.back()) {
1403 for (Node &N : C)
1421 Node *N;
1438 Node *N;
1447 Node &ChildN = I->getNode(*this);
1499 [RootDFSNumber](Node *N) { return N->DFSNumber < RootDFSNumber; }));
1518 static void printNode(raw_ostream &OS, LazyCallGraph::Node &N) {
1531 for (LazyCallGraph::Node &N : C)
1564 static void printNodeDOT(raw_ostream &OS, LazyCallGraph::Node &N) {