Lines Matching defs:ToBBI
277 void CopyAndPredicateBlock(BBInfo &ToBBI, BBInfo &FromBBI,
280 void MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges = true);
2161 void IfConverter::CopyAndPredicateBlock(BBInfo &ToBBI, BBInfo &FromBBI,
2164 MachineFunction &MF = *ToBBI.BB->getParent();
2177 ToBBI.BB->insert(ToBBI.BB->end(), MI);
2178 ToBBI.NonPredSize++;
2182 ToBBI.ExtraCost += NumCycles-1;
2183 ToBBI.ExtraCost2 += ExtraPredCost;
2209 ToBBI.BB->addSuccessor(Succ);
2213 ToBBI.Predicate.append(FromBBI.Predicate.begin(), FromBBI.Predicate.end());
2214 ToBBI.Predicate.append(Cond.begin(), Cond.end());
2216 ToBBI.ClobbersPred |= FromBBI.ClobbersPred;
2217 ToBBI.IsAnalyzed = false;
2225 /// branch is being moved, add those successor edges to ToBBI and remove the old
2226 /// edge from ToBBI to FromBBI.
2227 void IfConverter::MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges) {
2233 // ToBBI's successor list accordingly.
2238 if (MO.isMBB() && !ToBBI.BB->isSuccessor(MO.getMBB()))
2239 ToBBI.BB->addSuccessor(MO.getMBB(), BranchProbability::getZero());
2244 MachineBasicBlock::iterator ToTI = ToBBI.BB->getFirstTerminator();
2245 ToBBI.BB->splice(ToTI, &FromMBB, FromMBB.begin(), FromTI);
2249 ToTI = ToBBI.BB->end();
2250 ToBBI.BB->splice(ToTI, &FromMBB, FromTI, FromMBB.end());
2252 // Force normalizing the successors' probabilities of ToBBI.BB to convert all
2256 if (ToBBI.IsBrAnalyzable)
2257 ToBBI.BB->normalizeSuccProbs();
2262 // The edge probability from ToBBI.BB to FromMBB, which is only needed when
2263 // AddEdges is true and FromMBB is a successor of ToBBI.BB.
2265 if (AddEdges && ToBBI.BB->isSuccessor(&FromMBB)) {
2268 To2FromProb = MBPI->getEdgeProbability(ToBBI.BB, &FromMBB);
2269 ToBBI.BB->removeSuccessor(&FromMBB);
2281 // Calculate the edge probability for the edge from ToBBI.BB to Succ,
2283 // portion ratio is the edge probability from ToBBI.BB to FromMBB (if
2284 // FromBBI is a successor of ToBBI.BB. See comment below for exception).
2287 // To2FromProb is 0 when FromMBB is not a successor of ToBBI.BB. This
2289 // tail BB. In this case FromMBB post-dominates ToBBI.BB and hence we
2299 // If the edge from ToBBI.BB to Succ already exists, update the
2301 // below, in which A is ToBBI.BB and B is FromMBB. In this case we
2321 if (ToBBI.BB->isSuccessor(Succ))
2322 ToBBI.BB->setSuccProbability(
2323 find(ToBBI.BB->successors(), Succ),
2324 MBPI->getEdgeProbability(ToBBI.BB, Succ) + NewProb);
2326 ToBBI.BB->addSuccessor(Succ, NewProb);
2336 // Normalize the probabilities of ToBBI.BB's successors with all adjustment
2338 if (ToBBI.IsBrAnalyzable && FromBBI.IsBrAnalyzable)
2339 ToBBI.BB->normalizeSuccProbs();
2341 ToBBI.Predicate.append(FromBBI.Predicate.begin(), FromBBI.Predicate.end());
2344 ToBBI.NonPredSize += FromBBI.NonPredSize;
2345 ToBBI.ExtraCost += FromBBI.ExtraCost;
2346 ToBBI.ExtraCost2 += FromBBI.ExtraCost2;
2351 ToBBI.ClobbersPred |= FromBBI.ClobbersPred;
2352 ToBBI.HasFallThrough = FromBBI.HasFallThrough;
2353 ToBBI.IsAnalyzed = false;