Lines Matching defs:NMBB
460 /// New restore point: NMBB
463 /// 1. Fallthrough to NMBB iff NMBB is inserted immediately above MBB in the
465 /// 2. Branch unconditionally to NMBB iff NMBB is inserted at any other place.
467 MachineBasicBlock *NMBB,
470 // if NMBB isn't the new layout successor for BBToUpdate, insert unconditional
472 if (!BBToUpdate->isLayoutSuccessor(NMBB))
473 TII->insertUnconditionalBranch(*BBToUpdate, NMBB, DL);
482 /// new restore point: \p NMBB
484 /// 1. \p NMBB points to \p MBB unconditionally
485 /// 2. All dirtyPreds that previously pointed to \p MBB point to \p NMBB
493 // before the block layout change. This is just to ensure that if the NMBB is
495 // DirtyPred/CleanPred to NMBB
501 MachineBasicBlock *NMBB = MF->CreateMachineBasicBlock();
504 MF->insert(MF->end(), NMBB);
507 NMBB->addLiveIn(LI.PhysReg);
509 TII->insertUnconditionalBranch(*NMBB, MBB, DebugLoc());
514 SuccBB->ReplaceUsesOfBlockWith(MBB, NMBB);
516 NMBB->addSuccessor(MBB);
519 updateTerminator(BBToUpdate, NMBB, TII);
521 return NMBB;
526 /// DirtyPreds: All predecessors of \p NMBB that are ReachableByDirty.
529 /// changes to reset restore point from \p NMBB to \p MBB.
530 static void rollbackRestoreSplit(MachineFunction &MF, MachineBasicBlock *NMBB,
534 // For a BB, if NMBB is fallthrough in the current layout, then in the new
539 if (BB->getFallThrough(false) == NMBB)
542 NMBB->removeSuccessor(MBB);
544 SuccBB->ReplaceUsesOfBlockWith(NMBB, MBB);
546 NMBB->erase(NMBB->begin(), NMBB->end());
547 NMBB->eraseFromParent();