Lines Matching defs:FromMBB
2166 MachineBasicBlock &FromMBB = *FromBBI.BB;
2167 for (MachineInstr &I : FromMBB) {
2200 std::vector<MachineBasicBlock *> Succs(FromMBB.succ_begin(),
2201 FromMBB.succ_end());
2202 MachineBasicBlock *NBB = getNextBlock(FromMBB);
2228 MachineBasicBlock &FromMBB = *FromBBI.BB;
2229 assert(!FromMBB.hasAddressTaken() &&
2234 if (FromMBB.mayHaveInlineAsmBr())
2235 for (MachineInstr &MI : FromMBB)
2241 // In case FromMBB contains terminators (e.g. return instruction),
2243 MachineBasicBlock::iterator FromTI = FromMBB.getFirstTerminator();
2245 ToBBI.BB->splice(ToTI, &FromMBB, FromMBB.begin(), FromTI);
2248 if (FromTI != FromMBB.end() && !TII->isPredicated(*FromTI))
2250 ToBBI.BB->splice(ToTI, &FromMBB, FromTI, FromMBB.end());
2259 SmallVector<MachineBasicBlock *, 4> FromSuccs(FromMBB.successors());
2260 MachineBasicBlock *NBB = getNextBlock(FromMBB);
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);
2275 FromMBB.removeSuccessor(Succ);
2282 // which is a portion of the edge probability from FromMBB to Succ. The
2283 // portion ratio is the edge probability from ToBBI.BB to FromMBB (if
2285 NewProb = MBPI->getEdgeProbability(&FromMBB, Succ);
2287 // To2FromProb is 0 when FromMBB is not a successor of ToBBI.BB. This
2288 // only happens when if-converting a diamond CFG and FromMBB is the
2289 // tail BB. In this case FromMBB post-dominates ToBBI.BB and hence we
2290 // could just use the probabilities on FromMBB's out-edges when adding
2296 FromMBB.removeSuccessor(Succ);
2301 // below, in which A is ToBBI.BB and B is FromMBB. In this case we
2330 // Move the now empty FromMBB out of the way to the end of the function so
2332 MachineBasicBlock *Last = &*FromMBB.getParent()->rbegin();
2333 if (Last != &FromMBB)
2334 FromMBB.moveAfter(Last);