• Home
  • Raw
  • Download

Lines Matching refs:MBB

77   for (MachineBasicBlock *MBB : Loop->blocks())  in LoopBottom()
78 if (MBB->getNumber() > Bottom->getNumber()) in LoopBottom()
79 Bottom = MBB; in LoopBottom()
83 static void MaybeUpdateTerminator(MachineBasicBlock *MBB) { in MaybeUpdateTerminator() argument
88 for (const MachineInstr &Term : MBB->terminators()) { in MaybeUpdateTerminator()
97 MBB->updateTerminator(); in MaybeUpdateTerminator()
140 for (MachineBasicBlock &MBB : MF) { in SortBlocks()
141 unsigned N = MBB.pred_size(); in SortBlocks()
142 if (MachineLoop *L = MLI.getLoopFor(&MBB)) in SortBlocks()
143 if (L->getHeader() == &MBB) in SortBlocks()
144 for (const MachineBasicBlock *Pred : MBB.predecessors()) in SortBlocks()
147 NumPredsLeft[MBB.getNumber()] = N; in SortBlocks()
164 for (MachineBasicBlock *MBB = &MF.front();;) { in SortBlocks() local
165 const MachineLoop *L = MLI.getLoopFor(MBB); in SortBlocks()
169 if (L->getHeader() == MBB) in SortBlocks()
175 if (E.Loop->contains(MBB) && --E.NumBlocksLeft == 0) in SortBlocks()
182 for (MachineBasicBlock *Succ : MBB->successors()) { in SortBlocks()
185 if (SuccL->getHeader() == Succ && SuccL->contains(MBB)) in SortBlocks()
207 if (Next->getNumber() < MBB->getNumber() && in SortBlocks()
221 MaybeUpdateTerminator(MBB); in SortBlocks()
238 Next->moveAfter(MBB); in SortBlocks()
239 MaybeUpdateTerminator(MBB); in SortBlocks()
240 MBB = Next; in SortBlocks()
253 for (auto &MBB : MF) { in SortBlocks() local
254 assert(MBB.getNumber() >= 0 && "Renumbered blocks should be non-negative."); in SortBlocks()
256 MachineLoop *Loop = MLI.getLoopFor(&MBB); in SortBlocks()
257 if (Loop && &MBB == Loop->getHeader()) { in SortBlocks()
260 for (auto Pred : MBB.predecessors()) in SortBlocks()
262 (Pred->getNumber() < MBB.getNumber() || Loop->contains(Pred)) && in SortBlocks()
267 for (auto Pred : MBB.predecessors()) in SortBlocks()
268 assert(Pred->getNumber() < MBB.getNumber() && in SortBlocks()
270 assert(OnStack.count(MLI.getLoopFor(&MBB)) && in SortBlocks()
273 while (OnStack.size() > 1 && &MBB == LoopBottom(OnStack.back())) in SortBlocks()
289 MachineBasicBlock *MBB) { in ExplicitlyBranchesTo() argument
292 if (MO.isMBB() && MO.getMBB() == MBB) in ExplicitlyBranchesTo()
311 static void PlaceBlockMarker(MachineBasicBlock &MBB, MachineFunction &MF, in PlaceBlockMarker() argument
322 int MBBNumber = MBB.getNumber(); in PlaceBlockMarker()
323 for (MachineBasicBlock *Pred : MBB.predecessors()) in PlaceBlockMarker()
326 if (ExplicitlyBranchesTo(Pred, &MBB)) in PlaceBlockMarker()
334 assert(&MBB != &MF.front() && "Header blocks shouldn't have predecessors"); in PlaceBlockMarker()
335 MachineBasicBlock *LayoutPred = &*prev(MachineFunction::iterator(&MBB)); in PlaceBlockMarker()
362 if (HeaderLoop && MBB.getNumber() > LoopBottom(HeaderLoop)->getNumber()) { in PlaceBlockMarker()
383 InsertPos = MBB.begin(); in PlaceBlockMarker()
384 while (InsertPos != MBB.end() && in PlaceBlockMarker()
387 BuildMI(MBB, InsertPos, DebugLoc(), TII.get(WebAssembly::END_BLOCK)); in PlaceBlockMarker()
390 int Number = MBB.getNumber(); in PlaceBlockMarker()
398 MachineBasicBlock &MBB, MachineFunction &MF, in PlaceLoopMarker() argument
402 MachineLoop *Loop = MLI.getLoopFor(&MBB); in PlaceLoopMarker()
403 if (!Loop || Loop->getHeader() != &MBB) in PlaceLoopMarker()
421 auto InsertPos = MBB.begin(); in PlaceLoopMarker()
422 while (InsertPos != MBB.end() && in PlaceLoopMarker()
425 BuildMI(MBB, InsertPos, DebugLoc(), TII.get(WebAssembly::LOOP)); in PlaceLoopMarker()
430 LoopTops[End] = &MBB; in PlaceLoopMarker()
433 ScopeTops[AfterLoop->getNumber()]->getNumber() < MBB.getNumber()) && in PlaceLoopMarker()
436 ScopeTops[AfterLoop->getNumber()] = &MBB; in PlaceLoopMarker()
441 const MachineBasicBlock *MBB) { in GetDepth() argument
444 if (X == MBB) in GetDepth()
467 for (auto &MBB : MF) { in PlaceMarkers() local
469 PlaceLoopMarker(MBB, MF, ScopeTops, LoopTops, TII, MLI); in PlaceMarkers()
472 PlaceBlockMarker(MBB, MF, ScopeTops, TII, MLI, MDT, MFI); in PlaceMarkers()
477 for (auto &MBB : reverse(MF)) { in PlaceMarkers() local
478 for (auto &MI : reverse(MBB)) { in PlaceMarkers()
481 assert(ScopeTops[Stack.back()->getNumber()] == &MBB && in PlaceMarkers()
486 assert(Stack.back() == &MBB && "Loop top should be balanced"); in PlaceMarkers()
491 Stack.push_back(&MBB); in PlaceMarkers()
494 Stack.push_back(&MBB); in PlaceMarkers()