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);
48 for (MachineInstr &MI : *Loop) {
65 if (Use.getParent()->getParent() != Loop)
85 MachineInstr &OrigPhi = findEquivalentInstruction(MI, Loop);
108 Preheader->replaceSuccessor(Loop, NewBB);
109 NewBB->addSuccessor(Loop);
110 Loop->replacePhiUsesWith(Preheader, NewBB);
114 TII->insertBranch(*NewBB, Loop, nullptr, {}, DL);
116 Loop->replaceSuccessor(Exit, NewBB);
117 Exit->replacePhiUsesWith(Loop, NewBB);
122 bool CanAnalyzeBr = !TII->analyzeBranch(*Loop, TBB, FBB, Cond);
125 TII->removeBranch(*Loop);
126 TII->insertBranch(*Loop, TBB == Exit ? NewBB : TBB,
135 bool llvm::isRegLiveInExitBlocks(MachineLoop *Loop, int PhysReg) {
137 Loop->getExitBlocks(ExitBlocks);