Lines Matching defs:ChainEdge
213 struct ChainEdge;
306 ChainEdge *getEdge(ChainT *Other) const {
307 for (const auto &[Chain, ChainEdge] : Edges) {
309 return ChainEdge;
325 void addEdge(ChainT *Other, ChainEdge *Edge) {
363 std::vector<std::pair<ChainT *, ChainEdge *>> Edges;
369 struct ChainEdge {
370 ChainEdge(const ChainEdge &) = delete;
371 ChainEdge(ChainEdge &&) = default;
372 ChainEdge &operator=(const ChainEdge &) = delete;
373 ChainEdge &operator=(ChainEdge &&) = delete;
375 explicit ChainEdge(JumpT *Jump)
389 void moveJumps(ChainEdge *Other) {
477 ChainEdge *CurEdge = getEdge(TargetChain);
675 ChainEdge *CurEdge = PredNode.CurChain->getEdge(SuccNode->CurChain);
852 ChainEdge *Edge) const {
858 ChainEdge *EdgePP = ChainPred->getEdge(ChainPred);
964 ChainEdge *SelfEdge = Into->getEdge(Into);
1029 std::vector<ChainEdge> AllEdges;
1113 ChainEdge *CurEdge = PredNode.CurChain->getEdge(SuccNode->CurChain);
1131 auto GainComparator = [](ChainEdge *L, ChainEdge *R) {
1135 std::set<ChainEdge *, decltype(GainComparator)> Queue(GainComparator);
1163 ChainEdge *BestEdge = *Queue.begin();
1169 for (const auto &[_, ChainEdge] : BestSrcChain->Edges)
1170 Queue.erase(ChainEdge);
1171 for (const auto &[_, ChainEdge] : BestDstChain->Edges)
1172 Queue.erase(ChainEdge);
1209 MergeGainT getBestMergeGain(ChainEdge *Edge) const {
1399 std::vector<ChainEdge> AllEdges;