Lines Matching full:edges
307 for (const auto &[Chain, ChainEdge] : Edges) {
315 auto It = Edges.begin();
316 while (It != Edges.end()) {
318 Edges.erase(It);
326 Edges.push_back(std::make_pair(Other, Edge));
347 Edges.clear();
348 Edges.shrink_to_fit();
362 // Adjacent chains and corresponding edges (lists of jumps).
363 std::vector<std::pair<ChainT *, ChainEdge *>> Edges;
367 /// When nodes are merged into chains, the edges are combined too so that
474 // Update edges adjacent to chain Other.
475 for (const auto &[DstChain, DstEdge] : Other->Edges) {
635 // Ignore self-edges.
669 // Initialize chain edges.
708 // loop edges are the hottest successors for the basic blocks of the loop.
755 for (const auto &[ChainSucc, Edge] : ChainPred->Edges) {
756 // Ignore loop edges.
959 // Merge the edges.
975 for (auto EdgeIt : Into->Edges)
1028 /// All edges between the chains.
1108 // Initialize chain edges.
1130 // Create a priority queue containing all edges ordered by the merge gain.
1137 // Insert the edges into the queue.
1143 for (const auto &[_, Edge] : Node.CurChain->Edges) {
1144 // Ignore self-edges.
1147 // Ignore already processed edges.
1168 // Remove outdated edges from the queue.
1169 for (const auto &[_, ChainEdge] : BestSrcChain->Edges)
1171 for (const auto &[_, ChainEdge] : BestDstChain->Edges)
1180 // Insert newly created edges into the queue.
1181 for (const auto &[_, Edge] : BestSrcChain->Edges) {
1182 // Ignore loop edges.
1332 // Merge the edges.
1398 /// All edges between the chains.