Lines Matching refs:ChainPred
610 for (Chain *ChainPred : HotChains) { in mergeChainPairs()
612 for (auto EdgeIter : ChainPred->edges()) { in mergeChainPairs()
616 if (ChainPred == ChainSucc) in mergeChainPairs()
620 MergeGainTy CurGain = mergeGain(ChainPred, ChainSucc, ChainEdge); in mergeChainPairs()
626 compareChainPairs(ChainPred, ChainSucc, BestChainPred, in mergeChainPairs()
629 BestChainPred = ChainPred; in mergeChainPairs()
697 MergeGainTy mergeGain(Chain *ChainPred, Chain *ChainSucc, Edge *Edge) const { in mergeGain() argument
698 if (Edge->hasCachedMergeGain(ChainPred, ChainSucc)) in mergeGain()
699 return Edge->getCachedMergeGain(ChainPred, ChainSucc); in mergeGain()
703 class Edge *EdgePP = ChainPred->getEdge(ChainPred); in mergeGain()
710 Gain = computeMergeGain(Gain, ChainPred, ChainSucc, Jumps, 0, in mergeGain()
714 if (ChainPred->blocks().size() <= opts::ChainSplitThreshold) { in mergeGain()
715 for (size_t Offset = 1; Offset < ChainPred->blocks().size(); Offset++) { in mergeGain()
716 Block *BB1 = ChainPred->blocks()[Offset - 1]; in mergeGain()
717 Block *BB2 = ChainPred->blocks()[Offset]; in mergeGain()
725 Gain = computeMergeGain(Gain, ChainPred, ChainSucc, Jumps, Offset, in mergeGain()
727 Gain = computeMergeGain(Gain, ChainPred, ChainSucc, Jumps, Offset, in mergeGain()
729 Gain = computeMergeGain(Gain, ChainPred, ChainSucc, Jumps, Offset, in mergeGain()
734 Edge->setCachedMergeGain(ChainPred, ChainSucc, Gain); in mergeGain()
740 const Chain *ChainPred, const Chain *ChainSucc, in computeMergeGain() argument
744 ChainPred->blocks(), ChainSucc->blocks(), MergeOffset, MergeType); in computeMergeGain()
747 if ((ChainPred->isEntryPoint() || ChainSucc->isEntryPoint()) && in computeMergeGain()
752 const double NewScore = score(MergedBlocks, Jumps) - ChainPred->score(); in computeMergeGain()