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