Lines Matching refs:Loop
28 MachineBasicBlock *Loop, in PeelSingleBlockLoop() argument
31 MachineFunction &MF = *Loop->getParent(); in PeelSingleBlockLoop()
32 MachineBasicBlock *Preheader = *Loop->pred_begin(); in PeelSingleBlockLoop()
33 if (Preheader == Loop) in PeelSingleBlockLoop()
34 Preheader = *std::next(Loop->pred_begin()); in PeelSingleBlockLoop()
35 MachineBasicBlock *Exit = *Loop->succ_begin(); in PeelSingleBlockLoop()
36 if (Exit == Loop) in PeelSingleBlockLoop()
37 Exit = *std::next(Loop->succ_begin()); in PeelSingleBlockLoop()
39 MachineBasicBlock *NewBB = MF.CreateMachineBasicBlock(Loop->getBasicBlock()); in PeelSingleBlockLoop()
41 MF.insert(Loop->getIterator(), NewBB); in PeelSingleBlockLoop()
43 MF.insert(std::next(Loop->getIterator()), NewBB); in PeelSingleBlockLoop()
47 for (MachineInstr &MI : *Loop) { in PeelSingleBlockLoop()
64 if (Use.getParent()->getParent() != Loop) in PeelSingleBlockLoop()
84 MachineInstr &OrigPhi = findEquivalentInstruction(MI, Loop); in PeelSingleBlockLoop()
107 Preheader->replaceSuccessor(Loop, NewBB); in PeelSingleBlockLoop()
108 NewBB->addSuccessor(Loop); in PeelSingleBlockLoop()
109 Loop->replacePhiUsesWith(Preheader, NewBB); in PeelSingleBlockLoop()
113 TII->insertBranch(*NewBB, Loop, nullptr, {}, DL); in PeelSingleBlockLoop()
115 Loop->replaceSuccessor(Exit, NewBB); in PeelSingleBlockLoop()
116 Exit->replacePhiUsesWith(Loop, NewBB); in PeelSingleBlockLoop()
121 bool CanAnalyzeBr = !TII->analyzeBranch(*Loop, TBB, FBB, Cond); in PeelSingleBlockLoop()
124 TII->removeBranch(*Loop); in PeelSingleBlockLoop()
125 TII->insertBranch(*Loop, TBB == Exit ? NewBB : TBB, in PeelSingleBlockLoop()