Lines Matching defs:FromMBB
2165 MachineBasicBlock &FromMBB = *FromBBI.BB;
2166 for (MachineInstr &I : FromMBB) {
2199 std::vector<MachineBasicBlock *> Succs(FromMBB.succ_begin(),
2200 FromMBB.succ_end());
2201 MachineBasicBlock *NBB = getNextBlock(FromMBB);
2227 MachineBasicBlock &FromMBB = *FromBBI.BB;
2228 assert(!FromMBB.hasAddressTaken() &&
2233 if (FromMBB.mayHaveInlineAsmBr())
2234 for (MachineInstr &MI : FromMBB)
2240 // In case FromMBB contains terminators (e.g. return instruction),
2242 MachineBasicBlock::iterator FromTI = FromMBB.getFirstTerminator();
2244 ToBBI.BB->splice(ToTI, &FromMBB, FromMBB.begin(), FromTI);
2247 if (FromTI != FromMBB.end() && !TII->isPredicated(*FromTI))
2249 ToBBI.BB->splice(ToTI, &FromMBB, FromTI, FromMBB.end());
2258 SmallVector<MachineBasicBlock *, 4> FromSuccs(FromMBB.successors());
2259 MachineBasicBlock *NBB = getNextBlock(FromMBB);
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);
2274 FromMBB.removeSuccessor(Succ);
2281 // which is a portion of the edge probability from FromMBB to Succ. The
2282 // portion ratio is the edge probability from ToBBI.BB to FromMBB (if
2284 NewProb = MBPI->getEdgeProbability(&FromMBB, Succ);
2286 // To2FromProb is 0 when FromMBB is not a successor of ToBBI.BB. This
2287 // only happens when if-converting a diamond CFG and FromMBB is the
2288 // tail BB. In this case FromMBB post-dominates ToBBI.BB and hence we
2289 // could just use the probabilities on FromMBB's out-edges when adding
2295 FromMBB.removeSuccessor(Succ);
2300 // below, in which A is ToBBI.BB and B is FromMBB. In this case we
2329 // Move the now empty FromMBB out of the way to the end of the function so
2331 MachineBasicBlock *Last = &*FromMBB.getParent()->rbegin();
2332 if (Last != &FromMBB)
2333 FromMBB.moveAfter(Last);