Lines Matching defs:ToBBI
276 void CopyAndPredicateBlock(BBInfo &ToBBI, BBInfo &FromBBI,
279 void MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges = true);
2160 void IfConverter::CopyAndPredicateBlock(BBInfo &ToBBI, BBInfo &FromBBI,
2163 MachineFunction &MF = *ToBBI.BB->getParent();
2176 ToBBI.BB->insert(ToBBI.BB->end(), MI);
2177 ToBBI.NonPredSize++;
2181 ToBBI.ExtraCost += NumCycles-1;
2182 ToBBI.ExtraCost2 += ExtraPredCost;
2208 ToBBI.BB->addSuccessor(Succ);
2212 ToBBI.Predicate.append(FromBBI.Predicate.begin(), FromBBI.Predicate.end());
2213 ToBBI.Predicate.append(Cond.begin(), Cond.end());
2215 ToBBI.ClobbersPred |= FromBBI.ClobbersPred;
2216 ToBBI.IsAnalyzed = false;
2224 /// branch is being moved, add those successor edges to ToBBI and remove the old
2225 /// edge from ToBBI to FromBBI.
2226 void IfConverter::MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges) {
2232 // ToBBI's successor list accordingly.
2237 if (MO.isMBB() && !ToBBI.BB->isSuccessor(MO.getMBB()))
2238 ToBBI.BB->addSuccessor(MO.getMBB(), BranchProbability::getZero());
2243 MachineBasicBlock::iterator ToTI = ToBBI.BB->getFirstTerminator();
2244 ToBBI.BB->splice(ToTI, &FromMBB, FromMBB.begin(), FromTI);
2248 ToTI = ToBBI.BB->end();
2249 ToBBI.BB->splice(ToTI, &FromMBB, FromTI, FromMBB.end());
2251 // Force normalizing the successors' probabilities of ToBBI.BB to convert all
2255 if (ToBBI.IsBrAnalyzable)
2256 ToBBI.BB->normalizeSuccProbs();
2261 // The edge probability from ToBBI.BB to FromMBB, which is only needed when
2262 // AddEdges is true and FromMBB is a successor of ToBBI.BB.
2264 if (AddEdges && ToBBI.BB->isSuccessor(&FromMBB)) {
2267 To2FromProb = MBPI->getEdgeProbability(ToBBI.BB, &FromMBB);
2268 ToBBI.BB->removeSuccessor(&FromMBB);
2280 // Calculate the edge probability for the edge from ToBBI.BB to Succ,
2282 // portion ratio is the edge probability from ToBBI.BB to FromMBB (if
2283 // FromBBI is a successor of ToBBI.BB. See comment below for exception).
2286 // To2FromProb is 0 when FromMBB is not a successor of ToBBI.BB. This
2288 // tail BB. In this case FromMBB post-dominates ToBBI.BB and hence we
2298 // If the edge from ToBBI.BB to Succ already exists, update the
2300 // below, in which A is ToBBI.BB and B is FromMBB. In this case we
2320 if (ToBBI.BB->isSuccessor(Succ))
2321 ToBBI.BB->setSuccProbability(
2322 find(ToBBI.BB->successors(), Succ),
2323 MBPI->getEdgeProbability(ToBBI.BB, Succ) + NewProb);
2325 ToBBI.BB->addSuccessor(Succ, NewProb);
2335 // Normalize the probabilities of ToBBI.BB's successors with all adjustment
2337 if (ToBBI.IsBrAnalyzable && FromBBI.IsBrAnalyzable)
2338 ToBBI.BB->normalizeSuccProbs();
2340 ToBBI.Predicate.append(FromBBI.Predicate.begin(), FromBBI.Predicate.end());
2343 ToBBI.NonPredSize += FromBBI.NonPredSize;
2344 ToBBI.ExtraCost += FromBBI.ExtraCost;
2345 ToBBI.ExtraCost2 += FromBBI.ExtraCost2;
2350 ToBBI.ClobbersPred |= FromBBI.ClobbersPred;
2351 ToBBI.HasFallThrough = FromBBI.HasFallThrough;
2352 ToBBI.IsAnalyzed = false;