Lines Matching refs:Loop

27                                              MachineBasicBlock *Loop,  in PeelSingleBlockLoop()  argument
30 MachineFunction &MF = *Loop->getParent(); in PeelSingleBlockLoop()
31 MachineBasicBlock *Preheader = *Loop->pred_begin(); in PeelSingleBlockLoop()
32 if (Preheader == Loop) in PeelSingleBlockLoop()
33 Preheader = *std::next(Loop->pred_begin()); in PeelSingleBlockLoop()
34 MachineBasicBlock *Exit = *Loop->succ_begin(); in PeelSingleBlockLoop()
35 if (Exit == Loop) in PeelSingleBlockLoop()
36 Exit = *std::next(Loop->succ_begin()); in PeelSingleBlockLoop()
38 MachineBasicBlock *NewBB = MF.CreateMachineBasicBlock(Loop->getBasicBlock()); in PeelSingleBlockLoop()
40 MF.insert(Loop->getIterator(), NewBB); in PeelSingleBlockLoop()
42 MF.insert(std::next(Loop->getIterator()), NewBB); in PeelSingleBlockLoop()
46 for (MachineInstr &MI : *Loop) { in PeelSingleBlockLoop()
63 if (Use.getParent()->getParent() != Loop) in PeelSingleBlockLoop()
87 MachineInstr &OrigPhi = findEquivalentInstruction(MI, Loop); in PeelSingleBlockLoop()
110 Preheader->ReplaceUsesOfBlockWith(Loop, NewBB); in PeelSingleBlockLoop()
111 NewBB->addSuccessor(Loop); in PeelSingleBlockLoop()
112 Loop->replacePhiUsesWith(Preheader, NewBB); in PeelSingleBlockLoop()
113 Preheader->updateTerminator(Loop); in PeelSingleBlockLoop()
115 TII->insertBranch(*NewBB, Loop, nullptr, {}, DL); in PeelSingleBlockLoop()
117 Loop->replaceSuccessor(Exit, NewBB); in PeelSingleBlockLoop()
118 Exit->replacePhiUsesWith(Loop, NewBB); in PeelSingleBlockLoop()
123 bool CanAnalyzeBr = !TII->analyzeBranch(*Loop, TBB, FBB, Cond); in PeelSingleBlockLoop()
126 TII->removeBranch(*Loop); in PeelSingleBlockLoop()
127 TII->insertBranch(*Loop, TBB == Exit ? NewBB : TBB, in PeelSingleBlockLoop()