Lines Matching refs:Clone
275 void addClone(ContextNode *Clone) { in addClone()
277 CloneOf->Clones.push_back(Clone); in addClone()
278 Clone->CloneOf = CloneOf; in addClone()
280 Clones.push_back(Clone); in addClone()
281 assert(!Clone->CloneOf); in addClone()
282 Clone->CloneOf = this; in addClone()
2099 for (auto *Clone : Clones) in print() local
2100 OS << FS << Clone; in print()
2354 ContextNode *Clone = NodeOwner.back().get(); in moveEdgeToNewCalleeClone() local
2355 Node->addClone(Clone); in moveEdgeToNewCalleeClone()
2357 NodeToCallingFunc[Clone] = NodeToCallingFunc[Node]; in moveEdgeToNewCalleeClone()
2358 moveEdgeToExistingCalleeClone(Edge, Clone, CallerEdgeI, /*NewClone=*/true); in moveEdgeToNewCalleeClone()
2359 return Clone; in moveEdgeToNewCalleeClone()
2567 ContextNode *Clone = nullptr; in identifyClones() local
2576 Clone = CurClone; in identifyClones()
2581 if (Clone) in identifyClones()
2582 moveEdgeToExistingCalleeClone(CallerEdge, Clone, &EI); in identifyClones()
2584 Clone = moveEdgeToNewCalleeClone(CallerEdge, &EI); in identifyClones()
2589 assert(Clone->AllocTypes != (uint8_t)AllocationType::None); in identifyClones()
2591 Clone->CallerEdges, [&](const std::shared_ptr<ContextEdge> &E) { in identifyClones()
2598 for (auto *Clone : Node->Clones) { in identifyClones() local
2599 removeNoneTypeCalleeEdges(Clone); in identifyClones()
2601 checkNode<DerivedCCG, FuncTy, CallTy>(Clone); in identifyClones()
2830 ContextNode *Clone = ClonesWorklist.front(); in assignFunctions() local
2834 checkNode<DerivedCCG, FuncTy, CallTy>(Clone); in assignFunctions()
2847 Clone->CallerEdges, [&](const std::shared_ptr<ContextEdge> &E) { in assignFunctions()
2854 OrigFunc, Call, Clone, in assignFunctions()
2856 for (auto &CE : Clone->CallerEdges) { in assignFunctions()
2872 Clone->CallerEdges, [&](const std::shared_ptr<ContextEdge> &E) { in assignFunctions()
2876 if (EI != Clone->CallerEdges.end()) { in assignFunctions()
2900 NewFuncClone, Call, Clone, in assignFunctions()
2902 for (auto &CE : Clone->CallerEdges) { in assignFunctions()
2915 for (auto CE : Clone->CallerEdges) { in assignFunctions()
2950 if (Callee == Clone || !Callee->hasCall()) in assignFunctions()
3004 for (auto EI = Clone->CallerEdges.begin(); in assignFunctions()
3005 EI != Clone->CallerEdges.end();) { in assignFunctions()
3028 Clone) || in assignFunctions()
3067 assert(EI == Clone->CallerEdges.end() || in assignFunctions()
3068 Clone->AllocTypes != (uint8_t)AllocationType::None); in assignFunctions()
3073 removeNoneTypeCalleeEdges(Clone); in assignFunctions()
3086 FuncCloneCalledByCaller, Call, Clone, in assignFunctions()
3115 FuncCloneAssignedToCurCallsiteClone, Call, Clone, in assignFunctions()
3119 [FuncCloneAssignedToCurCallsiteClone] == Clone); in assignFunctions()
3134 for (auto *Clone : Node->Clones) { in assignFunctions() local
3135 checkNode<DerivedCCG, FuncTy, CallTy>(Clone); in assignFunctions()
3136 for (const auto &PE : Clone->CalleeEdges) in assignFunctions()
3138 for (const auto &CE : Clone->CallerEdges) in assignFunctions()
3152 for (auto *Clone : Node->Clones) in assignFunctions() local
3153 UpdateCalls(Clone, Visited, UpdateCalls); in assignFunctions()