Lines Matching defs:NMBB
452 /// New restore point: NMBB
455 /// 1. Fallthrough to NMBB iff NMBB is inserted immediately above MBB in the
457 /// 2. Branch unconditionally to NMBB iff NMBB is inserted at any other place.
459 MachineBasicBlock *NMBB,
462 // if NMBB isn't the new layout successor for BBToUpdate, insert unconditional
464 if (!BBToUpdate->isLayoutSuccessor(NMBB))
465 TII->insertUnconditionalBranch(*BBToUpdate, NMBB, DL);
474 /// new restore point: \p NMBB
476 /// 1. \p NMBB points to \p MBB unconditionally
477 /// 2. All dirtyPreds that previously pointed to \p MBB point to \p NMBB
485 // before the block layout change. This is just to ensure that if the NMBB is
487 // DirtyPred/CleanPred to NMBB
493 MachineBasicBlock *NMBB = MF->CreateMachineBasicBlock();
496 MF->insert(MF->end(), NMBB);
499 NMBB->addLiveIn(LI.PhysReg);
501 TII->insertUnconditionalBranch(*NMBB, MBB, DebugLoc());
506 SuccBB->ReplaceUsesOfBlockWith(MBB, NMBB);
508 NMBB->addSuccessor(MBB);
511 updateTerminator(BBToUpdate, NMBB, TII);
513 return NMBB;
518 /// DirtyPreds: All predecessors of \p NMBB that are ReachableByDirty.
521 /// changes to reset restore point from \p NMBB to \p MBB.
522 static void rollbackRestoreSplit(MachineFunction &MF, MachineBasicBlock *NMBB,
526 // For a BB, if NMBB is fallthrough in the current layout, then in the new
531 if (BB->getFallThrough(false) == NMBB)
534 NMBB->removeSuccessor(MBB);
536 SuccBB->ReplaceUsesOfBlockWith(NMBB, MBB);
538 NMBB->erase(NMBB->begin(), NMBB->end());
539 NMBB->eraseFromParent();