Lines Matching refs:SCCs
340 assert(!SCCs.empty() && "Can't have an empty SCC!"); in verify()
344 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()
569 SCCs.begin() + SourceIdx + 1, SCCs.begin() + TargetIdx + 1, in updatePostorderSequenceForEdgeInsertion()
572 SCCIndices.find(SCCs[i])->second = i; in updatePostorderSequenceForEdgeInsertion()
573 TargetIdx = std::prev(TargetI) - SCCs.begin(); in updatePostorderSequenceForEdgeInsertion()
574 assert(SCCs[TargetIdx] == &TargetSCC && in updatePostorderSequenceForEdgeInsertion()
582 return make_range(SCCs.begin() + SourceIdx, SCCs.begin() + TargetIdx); in updatePostorderSequenceForEdgeInsertion()
638 make_range(SCCs.begin() + SourceIdx + 1, SCCs.begin() + TargetIdx + 1)) in switchInternalEdgeToCall()
681 SourceSCC, TargetSCC, SCCs, SCCIndices, ComputeSourceConnectedSet, in switchInternalEdgeToCall()
722 auto EraseEnd = SCCs.erase(MergeRange.begin(), MergeRange.end()); in switchInternalEdgeToCall()
723 for (SCC *C : make_range(EraseEnd, SCCs.end())) in switchInternalEdgeToCall()
927 SCCs.insert(SCCs.begin() + OldIdx, NewSCCs.begin(), NewSCCs.end()); in switchInternalEdgeToRef()
931 for (int Idx = OldIdx, Size = SCCs.size(); Idx < Size; ++Idx) in switchInternalEdgeToRef()
932 SCCIndices[SCCs[Idx]] = Idx; in switchInternalEdgeToRef()
934 return make_range(SCCs.begin() + OldIdx, in switchInternalEdgeToRef()
935 SCCs.begin() + OldIdx + NewSCCs.size()); in switchInternalEdgeToRef()
1120 MergedSCCs = std::move(RC->SCCs); in insertIncomingRefEdge()
1122 MergedSCCs.append(RC->SCCs.begin(), RC->SCCs.end()); in insertIncomingRefEdge()
1123 RC->SCCs.clear(); in insertIncomingRefEdge()
1130 MergedSCCs.append(SCCs.begin(), SCCs.end()); in insertIncomingRefEdge()
1131 SCCs = std::move(MergedSCCs); in insertIncomingRefEdge()
1223 for (SCC *C : SCCs) { in removeInternalRefEdge()
1373 for (SCC *C : SCCs) { in removeInternalRefEdge()
1385 int SCCIndex = RC.SCCs.size(); in removeInternalRefEdge()
1386 RC.SCCs.push_back(C); in removeInternalRefEdge()
1394 SCCs.clear(); in removeInternalRefEdge()
1651 NewRC->SCCs.insert(NewRC->SCCs.begin() + InsertIndex, NewC); in addSplitFunction()
1652 for (int I = InsertIndex, Size = NewRC->SCCs.size(); I < Size; ++I) in addSplitFunction()
1653 NewRC->SCCIndices[NewRC->SCCs[I]] = I; in addSplitFunction()
1667 NewRC->SCCs.push_back(NewC); in addSplitFunction()
1743 NewRC->SCCs.push_back(NewC); in addSplitRefRecursiveFunctions()
1882 assert(RC.SCCs.empty() && "Already built SCCs!"); in buildSCCs()
1903 RC.SCCs.push_back(createSCC(RC, Nodes)); in buildSCCs()
1904 for (Node &N : *RC.SCCs.back()) { in buildSCCs()
1906 SCCMap[&N] = RC.SCCs.back(); in buildSCCs()
1911 for (int i = 0, Size = RC.SCCs.size(); i < Size; ++i) in buildSCCs()
1912 RC.SCCIndices[RC.SCCs[i]] = i; in buildSCCs()