Lines Matching refs:MBB

64   void placeBlockMarker(MachineBasicBlock &MBB);
65 void placeLoopMarker(MachineBasicBlock &MBB);
66 void placeTryMarker(MachineBasicBlock &MBB);
112 MachineBasicBlock *MBB) { in ExplicitlyBranchesTo() argument
117 if (MO.isMBB() && MO.getMBB() == MBB) in ExplicitlyBranchesTo()
128 GetEarliestInsertPos(MachineBasicBlock *MBB, in GetEarliestInsertPos() argument
131 auto InsertPos = MBB->end(); in GetEarliestInsertPos()
132 while (InsertPos != MBB->begin()) { in GetEarliestInsertPos()
136 for (auto Pos = InsertPos, E = MBB->begin(); Pos != E; --Pos) in GetEarliestInsertPos()
152 GetLatestInsertPos(MachineBasicBlock *MBB, in GetLatestInsertPos() argument
155 auto InsertPos = MBB->begin(); in GetLatestInsertPos()
156 while (InsertPos != MBB->end()) { in GetLatestInsertPos()
160 for (auto Pos = InsertPos, E = MBB->end(); Pos != E; ++Pos) in GetLatestInsertPos()
206 void WebAssemblyCFGStackify::placeBlockMarker(MachineBasicBlock &MBB) { in placeBlockMarker() argument
208 if (MBB.isEHPad()) in placeBlockMarker()
211 MachineFunction &MF = *MBB.getParent(); in placeBlockMarker()
221 int MBBNumber = MBB.getNumber(); in placeBlockMarker()
222 for (MachineBasicBlock *Pred : MBB.predecessors()) { in placeBlockMarker()
225 if (ExplicitlyBranchesTo(Pred, &MBB)) in placeBlockMarker()
234 assert(&MBB != &MF.front() && "Header blocks shouldn't have predecessors"); in placeBlockMarker()
235 MachineBasicBlock *LayoutPred = &*std::prev(MachineFunction::iterator(&MBB)); in placeBlockMarker()
265 if (MBB.getNumber() > getBottom(&MI)->getNumber()) in placeBlockMarker()
312 for (auto &MI : MBB) { in placeBlockMarker()
336 InsertPos = GetEarliestInsertPos(&MBB, BeforeSet, AfterSet); in placeBlockMarker()
337 MachineInstr *End = BuildMI(MBB, InsertPos, MBB.findPrevDebugLoc(InsertPos), in placeBlockMarker()
342 int Number = MBB.getNumber(); in placeBlockMarker()
349 void WebAssemblyCFGStackify::placeLoopMarker(MachineBasicBlock &MBB) { in placeLoopMarker() argument
350 MachineFunction &MF = *MBB.getParent(); in placeLoopMarker()
354 MachineLoop *Loop = MLI.getLoopFor(&MBB); in placeLoopMarker()
355 if (!Loop || Loop->getHeader() != &MBB) in placeLoopMarker()
374 for (const auto &MI : MBB) { in placeLoopMarker()
386 auto InsertPos = GetEarliestInsertPos(&MBB, BeforeSet, AfterSet); in placeLoopMarker()
387 MachineInstr *Begin = BuildMI(MBB, InsertPos, MBB.findDebugLoc(InsertPos), in placeLoopMarker()
395 for (const auto &MI : MBB) in placeLoopMarker()
410 ScopeTops[AfterLoop->getNumber()]->getNumber() < MBB.getNumber()) && in placeLoopMarker()
413 ScopeTops[AfterLoop->getNumber()] = &MBB; in placeLoopMarker()
416 void WebAssemblyCFGStackify::placeTryMarker(MachineBasicBlock &MBB) { in placeTryMarker() argument
417 if (!MBB.isEHPad()) in placeTryMarker()
422 if (WebAssembly::isCatchAllTerminatePad(MBB)) in placeTryMarker()
425 MachineFunction &MF = *MBB.getParent(); in placeTryMarker()
433 int MBBNumber = MBB.getNumber(); in placeTryMarker()
434 for (auto *Pred : MBB.predecessors()) { in placeTryMarker()
437 assert(!ExplicitlyBranchesTo(Pred, &MBB) && in placeTryMarker()
446 WebAssemblyException *WE = WEI.getExceptionFor(&MBB); in placeTryMarker()
490 if (MBB.getNumber() > Bottom->getNumber()) in placeTryMarker()
531 if (MBB.isPredecessor(Header)) { in placeTryMarker()
584 registerTryScope(Begin, End, &MBB); in placeTryMarker()
595 const MachineBasicBlock *MBB) { in GetDepth() argument
598 if (X == MBB) in GetDepth()
649 for (MachineBasicBlock &MBB : reverse(MF)) { in fixEndsAtEndOfFunction()
650 for (MachineInstr &MI : reverse(MBB)) { in fixEndsAtEndOfFunction()
683 for (auto &MBB : MF) in placeMarkers() local
684 placeLoopMarker(MBB); in placeMarkers()
688 for (auto &MBB : MF) in placeMarkers() local
689 placeTryMarker(MBB); in placeMarkers()
691 for (auto &MBB : MF) in placeMarkers() local
692 placeBlockMarker(MBB); in placeMarkers()
702 for (auto &MBB : reverse(MF)) { in rewriteDepthImmediates() local
703 for (auto I = MBB.rbegin(), E = MBB.rend(); I != E; ++I) { in rewriteDepthImmediates()
708 MBB.getNumber() && in rewriteDepthImmediates()
715 MBB.getNumber() && in rewriteDepthImmediates()
736 if (!WebAssembly::isCatchAllTerminatePad(MBB)) in rewriteDepthImmediates()
737 EHPadStack.push_back(&MBB); in rewriteDepthImmediates()
741 assert(Stack.back() == &MBB && "Loop top should be balanced"); in rewriteDepthImmediates()
747 Stack.push_back(&MBB); in rewriteDepthImmediates()
764 BuildMI(MBB, MI, MI.getDebugLoc(), TII.get(WebAssembly::RETHROW)) in rewriteDepthImmediates()