Lines Matching refs:SCCs
342 assert(!SCCs.empty() && "Can't have an empty SCC!"); in verify()
346 for (SCC *C : SCCs) { in verify()
362 assert(SCCs[I] == C && "Index doesn't point to SCC!"); in verify()
366 for (int I = 0, Size = SCCs.size(); I < Size; ++I) { in verify()
367 SCC &SourceSCC = *SCCs[I]; in verify()
384 for (SCC *C : SCCs) { in verify()
517 SCCT &SourceSCC, SCCT &TargetSCC, PostorderSequenceT &SCCs, in updatePostorderSequenceForEdgeInsertion() argument
534 SCCs.begin() + SourceIdx, SCCs.begin() + TargetIdx + 1, in updatePostorderSequenceForEdgeInsertion()
537 SCCIndices.find(SCCs[I])->second = I; in updatePostorderSequenceForEdgeInsertion()
542 assert(SourceI > (SCCs.begin() + SourceIdx) && in updatePostorderSequenceForEdgeInsertion()
552 assert(SCCs[TargetIdx] == &TargetSCC && in updatePostorderSequenceForEdgeInsertion()
554 SourceIdx = SourceI - SCCs.begin(); in updatePostorderSequenceForEdgeInsertion()
555 assert(SCCs[SourceIdx] == &SourceSCC && in updatePostorderSequenceForEdgeInsertion()
568 SCCs.begin() + SourceIdx + 1, SCCs.begin() + TargetIdx + 1, in updatePostorderSequenceForEdgeInsertion()
571 SCCIndices.find(SCCs[I])->second = I; in updatePostorderSequenceForEdgeInsertion()
572 TargetIdx = std::prev(TargetI) - SCCs.begin(); in updatePostorderSequenceForEdgeInsertion()
573 assert(SCCs[TargetIdx] == &TargetSCC && in updatePostorderSequenceForEdgeInsertion()
581 return make_range(SCCs.begin() + SourceIdx, SCCs.begin() + TargetIdx); in updatePostorderSequenceForEdgeInsertion()
636 make_range(SCCs.begin() + SourceIdx + 1, SCCs.begin() + TargetIdx + 1)) in switchInternalEdgeToCall()
679 SourceSCC, TargetSCC, SCCs, SCCIndices, ComputeSourceConnectedSet, in switchInternalEdgeToCall()
720 auto EraseEnd = SCCs.erase(MergeRange.begin(), MergeRange.end()); in switchInternalEdgeToCall()
721 for (SCC *C : make_range(EraseEnd, SCCs.end())) in switchInternalEdgeToCall()
919 SCCs.insert(SCCs.begin() + OldIdx, NewSCCs.begin(), NewSCCs.end()); in switchInternalEdgeToRef()
923 for (int Idx = OldIdx, Size = SCCs.size(); Idx < Size; ++Idx) in switchInternalEdgeToRef()
924 SCCIndices[SCCs[Idx]] = Idx; in switchInternalEdgeToRef()
926 return make_range(SCCs.begin() + OldIdx, in switchInternalEdgeToRef()
927 SCCs.begin() + OldIdx + NewSCCs.size()); in switchInternalEdgeToRef()
1112 MergedSCCs = std::move(RC->SCCs); in insertIncomingRefEdge()
1114 MergedSCCs.append(RC->SCCs.begin(), RC->SCCs.end()); in insertIncomingRefEdge()
1115 RC->SCCs.clear(); in insertIncomingRefEdge()
1122 MergedSCCs.append(SCCs.begin(), SCCs.end()); in insertIncomingRefEdge()
1123 SCCs = std::move(MergedSCCs); in insertIncomingRefEdge()
1211 for (SCC *C : SCCs) { in removeInternalRefEdges()
1359 for (SCC *C : SCCs) { in removeInternalRefEdges()
1371 int SCCIndex = RC.SCCs.size(); in removeInternalRefEdges()
1372 RC.SCCs.push_back(C); in removeInternalRefEdges()
1380 SCCs.clear(); in removeInternalRefEdges()
1671 NewRC->SCCs.insert(NewRC->SCCs.begin() + InsertIndex, NewC); in addSplitFunction()
1672 for (int I = InsertIndex, Size = NewRC->SCCs.size(); I < Size; ++I) in addSplitFunction()
1673 NewRC->SCCIndices[NewRC->SCCs[I]] = I; in addSplitFunction()
1687 NewRC->SCCs.push_back(NewC); in addSplitFunction()
1763 NewRC->SCCs.push_back(NewC); in addSplitRefRecursiveFunctions()
1900 assert(RC.SCCs.empty() && "Already built SCCs!"); in buildSCCs()
1921 RC.SCCs.push_back(createSCC(RC, Nodes)); in buildSCCs()
1922 for (Node &N : *RC.SCCs.back()) { in buildSCCs()
1924 SCCMap[&N] = RC.SCCs.back(); in buildSCCs()
1929 for (int I = 0, Size = RC.SCCs.size(); I < Size; ++I) in buildSCCs()
1930 RC.SCCIndices[RC.SCCs[I]] = I; in buildSCCs()