Lines Matching refs:MBB
106 bool ProcessBlock(MachineBasicBlock &MBB);
128 bool AllUsesDominatedByBlock(unsigned Reg, MachineBasicBlock *MBB,
131 MachineBasicBlock *FindSuccToSinkTo(MachineInstr *MI, MachineBasicBlock *MBB,
134 MachineBasicBlock *MBB,
139 MachineBasicBlock *MBB);
142 GetAllSortedSuccessors(MachineInstr *MI, MachineBasicBlock *MBB,
158 MachineBasicBlock *MBB) {
196 MachineBasicBlock *MBB,
207 // BreakPHIEdge is true if all the uses are in the successor MBB being sunken
227 if (!(UseBlock == MBB && UseInst->isPHI() &&
251 if (!DT->dominates(MBB, UseBlock))
281 for (auto &MBB: MF)
282 MadeChange |= ProcessBlock(MBB);
310 bool MachineSinking::ProcessBlock(MachineBasicBlock &MBB) {
312 if (MBB.succ_size() <= 1 || MBB.empty()) return false;
317 if (!DT->isReachableFromEntry(&MBB)) return false;
325 MachineBasicBlock::iterator I = MBB.end();
333 ProcessedBegin = I == MBB.begin();
340 bool Joined = PerformTrivialForwardCoalescing(MI, &MBB);
389 // If the definition resides in same MBB,
497 MachineBasicBlock *MBB,
503 if (MBB == SuccToSinkTo)
507 if (!PDT->dominates(SuccToSinkTo, MBB))
512 if (LI->getLoopDepth(MBB) > LI->getLoopDepth(SuccToSinkTo))
541 MachineSinking::GetAllSortedSuccessors(MachineInstr *MI, MachineBasicBlock *MBB,
545 auto Succs = AllSuccessors.find(MBB);
549 SmallVector<MachineBasicBlock *, 4> AllSuccs(MBB->succ_begin(),
550 MBB->succ_end());
560 DT->getNode(MBB)->getChildren();
562 // DomTree children of MBB that have MBB as immediate dominator are added.
565 !MBB->isSuccessor(DTChild->getBlock()))
579 auto it = AllSuccessors.insert(std::make_pair(MBB, AllSuccs));
586 MachineBasicBlock *MBB,
591 assert (MBB && "Invalid MachineBasicBlock!");
611 if (!MRI->isConstantPhysReg(Reg, *MBB->getParent()))
631 if (!AllUsesDominatedByBlock(Reg, SuccToSinkTo, MBB,
643 GetAllSortedSuccessors(MI, MBB, AllSuccessors)) {
645 if (AllUsesDominatedByBlock(Reg, SuccBlock, MBB,
658 if (!isProfitableToSinkTo(Reg, MI, MBB, SuccToSinkTo, AllSuccessors))
665 if (MBB == SuccToSinkTo)
769 // BreakPHIEdge is true if all the uses are in the successor MBB being