Lines Matching refs:Edge
325 void addEdge(ChainT *Other, ChainEdge *Edge) { in addEdge()
326 Edges.push_back(std::make_pair(Other, Edge)); in addEdge()
633 for (auto Edge : EdgeCounts) { in initialize() local
634 ++OutDegree[Edge.src]; in initialize()
636 if (Edge.src == Edge.dst) in initialize()
639 SuccNodes[Edge.src].push_back(Edge.dst); in initialize()
640 PredNodes[Edge.dst].push_back(Edge.src); in initialize()
641 if (Edge.count > 0) { in initialize()
642 NodeT &PredNode = AllNodes[Edge.src]; in initialize()
643 NodeT &SuccNode = AllNodes[Edge.dst]; in initialize()
644 AllJumps.emplace_back(&PredNode, &SuccNode, Edge.count); in initialize()
648 PredNode.ExecutionCount = std::max(PredNode.ExecutionCount, Edge.count); in initialize()
649 SuccNode.ExecutionCount = std::max(SuccNode.ExecutionCount, Edge.count); in initialize()
755 for (const auto &[ChainSucc, Edge] : ChainPred->Edges) { in mergeChainPairs()
757 if (Edge->isSelfEdge()) in mergeChainPairs()
778 MergeGainT CurGain = getBestMergeGain(ChainPred, ChainSucc, Edge); in mergeChainPairs()
852 ChainEdge *Edge) const { in getBestMergeGain()
853 if (Edge->hasCachedMergeGain(ChainPred, ChainSucc)) in getBestMergeGain()
854 return Edge->getCachedMergeGain(ChainPred, ChainSucc); in getBestMergeGain()
856 assert(!Edge->jumps().empty() && "trying to merge chains w/o jumps"); in getBestMergeGain()
859 MergedJumpsT Jumps(&Edge->jumps(), EdgePP ? &EdgePP->jumps() : nullptr); in getBestMergeGain()
923 Edge->setCachedMergeGain(ChainPred, ChainSucc, Gain); in getBestMergeGain()
1143 for (const auto &[_, Edge] : Node.CurChain->Edges) { in mergeChainPairs()
1145 if (Edge->isSelfEdge()) in mergeChainPairs()
1148 if (Edge->gain() != -1.0) in mergeChainPairs()
1152 MergeGainT Gain = getBestMergeGain(Edge); in mergeChainPairs()
1153 Edge->setMergeGain(Gain); in mergeChainPairs()
1155 if (Edge->gain() > EPS) in mergeChainPairs()
1156 Queue.insert(Edge); in mergeChainPairs()
1181 for (const auto &[_, Edge] : BestSrcChain->Edges) { in mergeChainPairs()
1183 if (Edge->isSelfEdge()) in mergeChainPairs()
1185 if (Edge->srcChain()->numBlocks() + Edge->dstChain()->numBlocks() > in mergeChainPairs()
1190 MergeGainT Gain = getBestMergeGain(Edge); in mergeChainPairs()
1191 Edge->setMergeGain(Gain); in mergeChainPairs()
1193 if (Edge->gain() > EPS) in mergeChainPairs()
1194 Queue.insert(Edge); in mergeChainPairs()
1209 MergeGainT getBestMergeGain(ChainEdge *Edge) const { in getBestMergeGain()
1210 assert(!Edge->jumps().empty() && "trying to merge chains w/o jumps"); in getBestMergeGain()
1212 MergedJumpsT Jumps(&Edge->jumps()); in getBestMergeGain()
1213 ChainT *SrcChain = Edge->srcChain(); in getBestMergeGain()
1214 ChainT *DstChain = Edge->dstChain(); in getBestMergeGain()
1438 for (auto Edge : EdgeCounts) in calcExtTspScore() local
1439 ++OutDegree[Edge.src]; in calcExtTspScore()
1443 for (auto Edge : EdgeCounts) { in calcExtTspScore() local
1444 bool IsConditional = OutDegree[Edge.src] > 1; in calcExtTspScore()
1445 Score += ::extTSPScore(Addr[Edge.src], NodeSizes[Edge.src], Addr[Edge.dst], in calcExtTspScore()
1446 Edge.count, IsConditional); in calcExtTspScore()