Lines Matching full:mbb
62 const MachineBasicBlock *MBB = MF.getBlockNumbered(Num);
63 const MachineBasicBlock *LPad = MBB->getLandingPadSuccessor();
65 SlotIndex MBBEnd = LIS.getMBBEndIdx(MBB);
70 MachineBasicBlock::const_iterator FirstTerm = MBB->getFirstTerminator();
71 if (FirstTerm == MBB->end())
81 for (MachineBasicBlock::const_iterator I = MBB->end(), E = MBB->begin();
96 // Find the value leaving MBB.
101 // If the value leaving MBB was defined after the call in MBB, it can't
114 SplitAnalysis::getLastSplitPointIter(MachineBasicBlock *MBB) {
115 SlotIndex LSP = getLastSplitPoint(MBB->getNumber());
116 if (LSP == LIS.getMBBEndIdx(MBB))
117 return MBB->end();
189 BI.MBB = MFI;
191 tie(Start, Stop) = LIS.getSlotIndexes()->getMBBRange(BI.MBB);
198 ThroughBlocks.set(BI.MBB->getNumber());
212 // LVI is the first live segment overlapping MBB.
433 MachineBasicBlock &MBB,
446 Def = Edit->rematerializeAt(MBB, I, LI->reg, RM, TRI, Late);
450 CopyMI = BuildMI(MBB, I, DebugLoc(), TII.get(TargetOpcode::COPY), LI->reg)
515 SlotIndex SplitEditor::enterIntvAtEnd(MachineBasicBlock &MBB) {
517 SlotIndex End = LIS.getMBBEndIdx(&MBB);
519 DEBUG(dbgs() << " enterIntvAtEnd BB#" << MBB.getNumber() << ", " << Last);
526 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Last, MBB,
527 SA.getLastSplitPointIter(&MBB));
533 /// useIntv - indicate that all instructions in MBB should use OpenLI.
534 void SplitEditor::useIntv(const MachineBasicBlock &MBB) {
535 useIntv(LIS.getMBBStartIdx(&MBB), LIS.getMBBEndIdx(&MBB));
595 SlotIndex SplitEditor::leaveIntvAtTop(MachineBasicBlock &MBB) {
597 SlotIndex Start = LIS.getMBBStartIdx(&MBB);
598 DEBUG(dbgs() << " leaveIntvAtTop BB#" << MBB.getNumber() << ", " << Start);
606 VNInfo *VNI = defFromParent(0, ParentVNI, Start, MBB,
607 MBB.SkipPHIsAndLabels(MBB.begin()));
645 MachineBasicBlock *MBB = MI->getParent();
648 do AtBegin = MBBI == MBB->begin();
678 SplitEditor::findShallowDominator(MachineBasicBlock *MBB,
680 if (MBB == DefMBB)
681 return MBB;
682 assert(MDT.dominates(DefMBB, MBB) && "MBB must be dominated by the def.");
689 MachineBasicBlock *BestMBB = MBB;
693 const MachineLoop *Loop = Loops.getLoopFor(MBB);
695 // MBB isn't in a loop, it doesn't get any better. All dominators have a
699 << MBB->getNumber() << " at depth 0\n");
700 return MBB;
706 << MBB->getNumber() << " in the same loop\n");
707 return MBB;
713 BestMBB = MBB;
716 << MBB->getNumber() << " at depth " << Depth << '\n');
727 MBB = IDom->getBlock();
888 MachineFunction::iterator MBB = LIS.getMBBFromIndex(Start);
890 tie(BlockStart, BlockEnd) = LIS.getSlotIndexes()->getMBBRange(MBB);
896 DEBUG(dbgs() << ':' << VNI->id << "*BB#" << MBB->getNumber());
897 // MBB has its own def. Is it also live-out?
899 LRC.setLiveOutValue(MBB, VNI);
902 ++MBB;
909 DEBUG(dbgs() << ">BB#" << MBB->getNumber());
910 BlockEnd = LIS.getMBBEndIdx(MBB);
917 LRC.setLiveOutValue(MBB, VNI); // Live-out as well.
922 LRC.addLiveInBlock(LI, MDT[MBB], End);
925 LRC.addLiveInBlock(LI, MDT[MBB]);
926 LRC.setLiveOutValue(MBB, 0);
930 ++MBB;
954 MachineBasicBlock *MBB = LIS.getMBBFromIndex(PHIVNI->def);
955 for (MachineBasicBlock::pred_iterator PI = MBB->pred_begin(),
956 PE = MBB->pred_end(); PI != PE; ++PI) {
1154 SlotIndex LastSplitPoint = SA.getLastSplitPoint(BI.MBB->getNumber());
1195 MachineBasicBlock *MBB = VRM.getMachineFunction().getBlockNumbered(MBBNum);
1205 SlotIndex Idx = leaveIntvAtTop(*MBB);
1219 SlotIndex Idx = enterIntvAtEnd(*MBB);
1254 Idx = enterIntvAtEnd(*MBB);
1286 tie(Start, Stop) = LIS.getSlotIndexes()->getMBBRange(BI.MBB);
1288 DEBUG(dbgs() << "BB#" << BI.MBB->getNumber() << " [" << Start << ';' << Stop
1309 SlotIndex LSP = SA.getLastSplitPoint(BI.MBB->getNumber());
1378 MBB);
1380 DEBUG(dbgs() << "BB#" << BI.MBB->getNumber() << " [" << Start << ';' << Stop
1385 SlotIndex LSP = SA.getLastSplitPoint(BI.MBB->getNumber());