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()
147 void ReachingDefAnalysis::reprocessBasicBlock(MachineBasicBlock *MBB) { in reprocessBasicBlock() argument
148 unsigned MBBNumber = MBB->getNumber(); in reprocessBasicBlock()
154 instructionsWithoutDebug(MBB->instr_begin(), MBB->instr_end()); in reprocessBasicBlock()
159 for (MachineBasicBlock *pred : MBB->predecessors()) { in reprocessBasicBlock()
194 MachineBasicBlock *MBB = TraversedMBB.MBB; in processBasicBlock() local
195 LLVM_DEBUG(dbgs() << printMBBReference(*MBB) in processBasicBlock()
201 reprocessBasicBlock(MBB); in processBasicBlock()
205 enterBasicBlock(MBB); in processBasicBlock()
207 instructionsWithoutDebug(MBB->instr_begin(), MBB->instr_end())) in processBasicBlock()
209 leaveBasicBlock(MBB); in processBasicBlock()
300 MachineInstr *ReachingDefAnalysis::getInstFromId(MachineBasicBlock *MBB, in getInstFromId() argument
302 assert(static_cast<size_t>(MBB->getNumber()) < MBBReachingDefs.size() && in getInstFromId()
304 assert(InstId < static_cast<int>(MBB->size()) && in getInstFromId()
310 for (auto &MI : *MBB) { in getInstFromId()
333 MachineBasicBlock *MBB = Def->getParent(); in getReachingLocalUses() local
335 while (++MI != MBB->end()) { in getReachingLocalUses()
355 bool ReachingDefAnalysis::getLiveInUses(MachineBasicBlock *MBB, in getLiveInUses() argument
359 instructionsWithoutDebug(MBB->instr_begin(), MBB->instr_end())) { in getLiveInUses()
368 auto Last = MBB->getLastNonDebugInstr(); in getLiveInUses()
369 if (Last == MBB->end()) in getLiveInUses()
376 MachineBasicBlock *MBB = MI->getParent(); in getGlobalUses() local
386 SmallVector<MachineBasicBlock *, 4> ToVisit(MBB->successors()); in getGlobalUses()
389 MachineBasicBlock *MBB = ToVisit.pop_back_val(); in getGlobalUses() local
390 if (Visited.count(MBB) || !MBB->isLiveIn(PhysReg)) in getGlobalUses()
392 if (getLiveInUses(MBB, PhysReg, Uses)) in getGlobalUses()
393 llvm::append_range(ToVisit, MBB->successors()); in getGlobalUses()
394 Visited.insert(MBB); in getGlobalUses()
407 for (auto *MBB : MI->getParent()->predecessors()) in getGlobalReachingDefs() local
408 getLiveOuts(MBB, PhysReg, Defs); in getGlobalReachingDefs()
411 void ReachingDefAnalysis::getLiveOuts(MachineBasicBlock *MBB, in getLiveOuts() argument
414 getLiveOuts(MBB, PhysReg, Defs, VisitedBBs); in getLiveOuts()
417 void ReachingDefAnalysis::getLiveOuts(MachineBasicBlock *MBB, in getLiveOuts() argument
420 if (VisitedBBs.count(MBB)) in getLiveOuts()
423 VisitedBBs.insert(MBB); in getLiveOuts()
425 LiveRegs.addLiveOuts(*MBB); in getLiveOuts()
429 if (auto *Def = getLocalLiveOutMIDef(MBB, PhysReg)) in getLiveOuts()
432 for (auto *Pred : MBB->predecessors()) in getLiveOuts()
471 MachineBasicBlock *MBB = MI->getParent(); in isRegUsedAfter() local
473 LiveRegs.addLiveOuts(*MBB); in isRegUsedAfter()
482 instructionsWithoutDebug(MBB->instr_rbegin(), MBB->instr_rend())) { in isRegUsedAfter()
492 MachineBasicBlock *MBB = MI->getParent(); in isRegDefinedAfter() local
493 auto Last = MBB->getLastNonDebugInstr(); in isRegDefinedAfter()
494 if (Last != MBB->end() && in isRegDefinedAfter()
498 if (auto *Def = getLocalLiveOutMIDef(MBB, PhysReg)) in isRegDefinedAfter()
506 MachineBasicBlock *MBB = MI->getParent(); in isReachingDefLiveOut() local
508 LiveRegs.addLiveOuts(*MBB); in isReachingDefLiveOut()
512 auto Last = MBB->getLastNonDebugInstr(); in isReachingDefLiveOut()
514 if (Last != MBB->end() && getReachingDef(&*Last, PhysReg) != Def) in isReachingDefLiveOut()
526 ReachingDefAnalysis::getLocalLiveOutMIDef(MachineBasicBlock *MBB, in getLocalLiveOutMIDef() argument
529 LiveRegs.addLiveOuts(*MBB); in getLocalLiveOutMIDef()
533 auto Last = MBB->getLastNonDebugInstr(); in getLocalLiveOutMIDef()
534 if (Last == MBB->end()) in getLocalLiveOutMIDef()
542 return Def < 0 ? nullptr : getInstFromId(MBB, Def); in getLocalLiveOutMIDef()
699 MachineBasicBlock *MBB = MI->getParent(); in isSafeToDefRegAt() local
703 for (auto E = MBB->end(); I != E; ++I) { in isSafeToDefRegAt()