Lines Matching refs:MBB

51 void ReachingDefAnalysis::enterBasicBlock(MachineBasicBlock *MBB) {  in enterBasicBlock()  argument
52 unsigned MBBNumber = MBB->getNumber(); in enterBasicBlock()
66 if (MBB->pred_empty()) { in enterBasicBlock()
67 for (const auto &LI : MBB->liveins()) { in enterBasicBlock()
78 LLVM_DEBUG(dbgs() << printMBBReference(*MBB) << ": entry\n"); in enterBasicBlock()
83 for (MachineBasicBlock *pred : MBB->predecessors()) { in enterBasicBlock()
103 void ReachingDefAnalysis::leaveBasicBlock(MachineBasicBlock *MBB) { in leaveBasicBlock() argument
105 unsigned MBBNumber = MBB->getNumber(); in leaveBasicBlock()
148 void ReachingDefAnalysis::reprocessBasicBlock(MachineBasicBlock *MBB) { in reprocessBasicBlock() argument
149 unsigned MBBNumber = MBB->getNumber(); in reprocessBasicBlock()
155 instructionsWithoutDebug(MBB->instr_begin(), MBB->instr_end()); in reprocessBasicBlock()
160 for (MachineBasicBlock *pred : MBB->predecessors()) { in reprocessBasicBlock()
195 MachineBasicBlock *MBB = TraversedMBB.MBB; in processBasicBlock() local
196 LLVM_DEBUG(dbgs() << printMBBReference(*MBB) in processBasicBlock()
202 reprocessBasicBlock(MBB); in processBasicBlock()
206 enterBasicBlock(MBB); in processBasicBlock()
208 instructionsWithoutDebug(MBB->instr_begin(), MBB->instr_end())) in processBasicBlock()
210 leaveBasicBlock(MBB); in processBasicBlock()
301 MachineInstr *ReachingDefAnalysis::getInstFromId(MachineBasicBlock *MBB, in getInstFromId() argument
303 assert(static_cast<size_t>(MBB->getNumber()) < MBBReachingDefs.size() && in getInstFromId()
305 assert(InstId < static_cast<int>(MBB->size()) && in getInstFromId()
311 for (auto &MI : *MBB) { in getInstFromId()
334 MachineBasicBlock *MBB = Def->getParent(); in getReachingLocalUses() local
336 while (++MI != MBB->end()) { in getReachingLocalUses()
356 bool ReachingDefAnalysis::getLiveInUses(MachineBasicBlock *MBB, in getLiveInUses() argument
360 instructionsWithoutDebug(MBB->instr_begin(), MBB->instr_end())) { in getLiveInUses()
369 auto Last = MBB->getLastNonDebugInstr(); in getLiveInUses()
370 if (Last == MBB->end()) in getLiveInUses()
377 MachineBasicBlock *MBB = MI->getParent(); in getGlobalUses() local
387 SmallVector<MachineBasicBlock *, 4> ToVisit(MBB->successors()); in getGlobalUses()
390 MachineBasicBlock *MBB = ToVisit.pop_back_val(); in getGlobalUses() local
391 if (Visited.count(MBB) || !MBB->isLiveIn(PhysReg)) in getGlobalUses()
393 if (getLiveInUses(MBB, PhysReg, Uses)) in getGlobalUses()
394 llvm::append_range(ToVisit, MBB->successors()); in getGlobalUses()
395 Visited.insert(MBB); in getGlobalUses()
408 for (auto *MBB : MI->getParent()->predecessors()) in getGlobalReachingDefs() local
409 getLiveOuts(MBB, PhysReg, Defs); in getGlobalReachingDefs()
412 void ReachingDefAnalysis::getLiveOuts(MachineBasicBlock *MBB, in getLiveOuts() argument
415 getLiveOuts(MBB, PhysReg, Defs, VisitedBBs); in getLiveOuts()
418 void ReachingDefAnalysis::getLiveOuts(MachineBasicBlock *MBB, in getLiveOuts() argument
421 if (VisitedBBs.count(MBB)) in getLiveOuts()
424 VisitedBBs.insert(MBB); in getLiveOuts()
426 LiveRegs.addLiveOuts(*MBB); in getLiveOuts()
427 if (LiveRegs.available(MBB->getParent()->getRegInfo(), PhysReg)) in getLiveOuts()
430 if (auto *Def = getLocalLiveOutMIDef(MBB, PhysReg)) in getLiveOuts()
433 for (auto *Pred : MBB->predecessors()) in getLiveOuts()
472 MachineBasicBlock *MBB = MI->getParent(); in isRegUsedAfter() local
474 LiveRegs.addLiveOuts(*MBB); in isRegUsedAfter()
477 if (!LiveRegs.available(MBB->getParent()->getRegInfo(), PhysReg)) in isRegUsedAfter()
483 instructionsWithoutDebug(MBB->instr_rbegin(), MBB->instr_rend())) { in isRegUsedAfter()
485 if (!LiveRegs.available(MBB->getParent()->getRegInfo(), PhysReg)) in isRegUsedAfter()
493 MachineBasicBlock *MBB = MI->getParent(); in isRegDefinedAfter() local
494 auto Last = MBB->getLastNonDebugInstr(); in isRegDefinedAfter()
495 if (Last != MBB->end() && in isRegDefinedAfter()
499 if (auto *Def = getLocalLiveOutMIDef(MBB, PhysReg)) in isRegDefinedAfter()
507 MachineBasicBlock *MBB = MI->getParent(); in isReachingDefLiveOut() local
509 LiveRegs.addLiveOuts(*MBB); in isReachingDefLiveOut()
510 if (LiveRegs.available(MBB->getParent()->getRegInfo(), PhysReg)) in isReachingDefLiveOut()
513 auto Last = MBB->getLastNonDebugInstr(); in isReachingDefLiveOut()
515 if (Last != MBB->end() && getReachingDef(&*Last, PhysReg) != Def) in isReachingDefLiveOut()
527 ReachingDefAnalysis::getLocalLiveOutMIDef(MachineBasicBlock *MBB, in getLocalLiveOutMIDef() argument
530 LiveRegs.addLiveOuts(*MBB); in getLocalLiveOutMIDef()
531 if (LiveRegs.available(MBB->getParent()->getRegInfo(), PhysReg)) in getLocalLiveOutMIDef()
534 auto Last = MBB->getLastNonDebugInstr(); in getLocalLiveOutMIDef()
535 if (Last == MBB->end()) in getLocalLiveOutMIDef()
543 return Def < 0 ? nullptr : getInstFromId(MBB, Def); in getLocalLiveOutMIDef()
700 MachineBasicBlock *MBB = MI->getParent(); in isSafeToDefRegAt() local
704 for (auto E = MBB->end(); I != E; ++I) { in isSafeToDefRegAt()