Lines Matching defs:ChainSucc
755 for (const auto &[ChainSucc, Edge] : ChainPred->Edges) {
761 if (ChainPred->numBlocks() + ChainSucc->numBlocks() >= MaxChainSize)
768 const double ChainSuccDensity = ChainSucc->density();
778 MergeGainT CurGain = getBestMergeGain(ChainPred, ChainSucc, Edge);
784 compareChainPairs(ChainPred, ChainSucc, BestChainPred,
788 BestChainSucc = ChainSucc;
851 MergeGainT getBestMergeGain(ChainT *ChainPred, ChainT *ChainSucc,
853 if (Edge->hasCachedMergeGain(ChainPred, ChainSucc))
854 return Edge->getCachedMergeGain(ChainPred, ChainSucc);
857 // Precompute jumps between ChainPred and ChainSucc.
879 computeMergeGain(ChainPred, ChainSucc, Jumps, Offset, MergeType));
885 computeMergeGain(ChainPred, ChainSucc, Jumps, 0, MergeTypeT::X_Y));
887 // Attach (a part of) ChainPred before the first node of ChainSucc.
888 for (JumpT *Jump : ChainSucc->Nodes.front()->InJumps) {
896 // Attach (a part of) ChainPred after the last node of ChainSucc.
897 for (JumpT *Jump : ChainSucc->Nodes.back()->OutJumps) {
905 // Try to break ChainPred in various ways and concatenate with ChainSucc.
923 Edge->setCachedMergeGain(ChainPred, ChainSucc, Gain);
931 MergeGainT computeMergeGain(const ChainT *ChainPred, const ChainT *ChainSucc,
935 mergeNodes(ChainPred->Nodes, ChainSucc->Nodes, MergeOffset, MergeType);
938 if ((ChainPred->isEntry() || ChainSucc->isEntry()) &&
1211 // Precompute jumps between ChainPred and ChainSucc.
1250 MergeGainT computeMergeGain(ChainT *ChainPred, ChainT *ChainSucc,
1254 double FreqGain = freqBasedLocalityGain(ChainPred, ChainSucc);
1259 mergeNodes(ChainPred->Nodes, ChainSucc->Nodes, MergeOffset, MergeType);
1265 GainScore /= std::min(ChainPred->Size, ChainSucc->Size);
1271 double freqBasedLocalityGain(ChainT *ChainPred, ChainT *ChainSucc) const {
1283 ChainSucc->ExecutionCount * missProbability(ChainSucc->density());
1286 double MergedCounts = ChainPred->ExecutionCount + ChainSucc->ExecutionCount;
1287 double MergedSize = ChainPred->Size + ChainSucc->Size;