Lines Matching refs:MBB
391 void computeBlockSize(MachineBasicBlock *MBB);
599 static bool BBHasFallthrough(MachineBasicBlock *MBB) {
601 MachineFunction::iterator MBBI = MBB->getIterator();
603 if (std::next(MBBI) == MBB->getParent()->end())
607 for (MachineBasicBlock::succ_iterator I = MBB->succ_begin(),
608 E = MBB->succ_end(); I != E; ++I)
668 MachineBasicBlock &MBB = *MBBI;
670 // If this block doesn't fall through into the next MBB, then this is
672 if (!BBHasFallthrough(&MBB))
673 WaterList.push_back(&MBB);
674 for (MachineBasicBlock::iterator I = MBB.begin(), E = MBB.end();
810 /// computeBlockSize - Compute the size and some alignment information for MBB.
812 void MipsConstantIslands::computeBlockSize(MachineBasicBlock *MBB) {
813 BasicBlockInfo &BBI = BBInfo[MBB->getNumber()];
816 for (MachineBasicBlock::iterator I = MBB->begin(), E = MBB->end(); I != E;
826 MachineBasicBlock *MBB = MI->getParent();
828 // The offset is composed of two things: the sum of the sizes of all MBB's
831 unsigned Offset = BBInfo[MBB->getNumber()].Offset;
833 // Sum instructions before MI in MBB.
834 for (MachineBasicBlock::iterator I = MBB->begin(); &*I != MI; ++I) {
835 assert(I != MBB->end() && "Didn't find MI in its own basic block?");
841 /// CompareMBBNumbers - Little predicate function to sort the WaterList by MBB
853 // Renumber the MBB's to keep them consecutive.
879 // Create a new MBB for the code after the OrigBB.
901 // Update internal data structures to account for the newly inserted MBB.
1030 static bool BBIsJumpedOver(MachineBasicBlock *MBB) {
1031 if (MBB->pred_size() != 1 || MBB->succ_size() != 1)
1033 MachineBasicBlock *Succ = *MBB->succ_begin();
1034 MachineBasicBlock *Pred = *MBB->pred_begin();
1410 // Update internal data structures to account for the newly inserted MBB.
1540 MachineBasicBlock *MBB = MI->getParent();
1564 BBInfo[MBB->getNumber()].Size += 2;
1565 adjustBBOffsetsAfter(MBB);
1602 // If the branch is at the end of its MBB and that has a fall-through block,
1604 // split the MBB before the next instruction.
1605 MachineBasicBlock *MBB = MI->getParent();
1606 MachineInstr *BMI = &MBB->back();
1607 bool NeedSplit = (BMI != MI) || !BBHasFallthrough(MBB);
1612 if (std::next(MachineBasicBlock::iterator(MI)) == std::prev(MBB->end()) &&
1640 int delta = TII->GetInstSizeInBytes(&MBB->back());
1641 BBInfo[MBB->getNumber()].Size -= delta;
1642 MBB->back().eraseFromParent();
1645 MachineBasicBlock *NextBB = &*++MBB->getIterator();
1654 BuildMI(MBB, DebugLoc(), TII->get(OppositeBranchOpcode))
1658 BuildMI(MBB, DebugLoc(), TII->get(OppositeBranchOpcode))
1661 Br.MI = &MBB->back();
1662 BBInfo[MBB->getNumber()].Size += TII->GetInstSizeInBytes(&MBB->back());
1663 BuildMI(MBB, DebugLoc(), TII->get(Br.UncondBr)).addMBB(DestBB);
1664 BBInfo[MBB->getNumber()].Size += TII->GetInstSizeInBytes(&MBB->back());
1666 ImmBranches.push_back(ImmBranch(&MBB->back(), MaxDisp, false, Br.UncondBr));
1668 // Remove the old conditional branch. It may or may not still be in MBB.
1671 adjustBBOffsetsAfter(MBB);