Lines Matching refs:MBB

101   MachineBasicBlock *canonicalize(MachineBasicBlock *MBB) {  in canonicalize()  argument
102 MachineLoop *InnerLoop = MLI.getLoopFor(MBB); in canonicalize()
104 return MBB; in canonicalize()
107 if (!LoopBlocks.count(MBB)) { in canonicalize()
121 MachineBasicBlock *canonicalizeSuccessor(MachineBasicBlock *MBB) { in canonicalizeSuccessor() argument
122 if (Loop && MBB == Loop->getHeader()) { in canonicalizeSuccessor()
126 return canonicalize(MBB); in canonicalizeSuccessor()
131 void maybeInsert(MachineBasicBlock *MBB, MachineBasicBlock *Succ) { in maybeInsert() argument
132 assert(MBB == canonicalize(MBB)); in maybeInsert()
138 if (Reachable[MBB].insert(Succ).second) { in maybeInsert()
144 if (canonicalizeSuccessor(MBB)) { in maybeInsert()
145 WorkList.emplace_back(MBB, Succ); in maybeInsert()
156 for (auto *MBB : Loop->getBlocks()) { in run() local
157 LoopBlocks.insert(MBB); in run()
160 for (auto &MBB : MF) { in run() local
161 LoopBlocks.insert(&MBB); in run()
168 for (auto *MBB : LoopBlocks) { in run() local
169 MachineLoop *InnerLoop = MLI.getLoopFor(MBB); in run()
172 for (auto *Succ : MBB->successors()) { in run()
173 maybeInsert(MBB, Succ); in run()
180 if (canonicalize(MBB) != MBB) { in run()
187 maybeInsert(MBB, Succ); in run()
194 MachineBasicBlock *MBB; in run() local
196 std::tie(MBB, Succ) = WorkList.pop_back_val(); in run()
199 assert(MBB); in run()
202 assert(MBB == canonicalizeSuccessor(MBB)); in run()
208 for (auto *Pred : MBB->predecessors()) { in run()
213 if (Pred && Pred != MBB) { in run()
221 for (auto MBB : LoopBlocks) { in run() local
222 if (Reachable[MBB].count(MBB)) { in run()
223 Loopers.insert(MBB); in run()
288 for (auto *MBB : SortedEntries) { in run() local
289 auto Pair = Indices.insert(std::make_pair(MBB, 0)); in run()
297 MIB.addMBB(MBB); in run()
298 Dispatch->addSuccessor(MBB); in run()
306 for (auto *MBB : SortedEntries) { in run() local
307 for (auto *Pred : MBB->predecessors()) { in run()
314 for (MachineBasicBlock *MBB : AllPreds) { in run()
316 for (auto *Succ : MBB->successors()) { in run()
323 MF.insert(MBB->isLayoutSuccessor(Succ) ? MachineFunction::iterator(Succ) in run()
339 for (MachineInstr &Term : MBB->terminators()) in run()
344 MBB->replaceSuccessor(Rewrite.first, Rewrite.second); in run()