Lines Matching refs:LoopStart

85                                             MachineInstr *LoopStart);
112 MachineInstr *&LoopStart, MachineInstr *&LoopPhi, in findLoopComponents() argument
175 LoopStart = LookThroughCOPY(MRI->getVRegDef(StartReg), MRI); in findLoopComponents()
176 if (!LoopStart || (LoopStart->getOpcode() != ARM::t2DoLoopStart && in findLoopComponents()
177 LoopStart->getOpcode() != ARM::t2WhileLoopSetup && in findLoopComponents()
178 LoopStart->getOpcode() != ARM::t2WhileLoopStartLR)) { in findLoopComponents()
182 LLVM_DEBUG(dbgs() << " found loop start: " << *LoopStart); in findLoopComponents()
232 MachineInstr *LoopEnd, *LoopPhi, *LoopStart, *LoopDec; in LowerWhileLoopStart() local
233 if (!findLoopComponents(ML, MRI, LoopStart, LoopPhi, LoopDec, LoopEnd)) in LowerWhileLoopStart()
236 if (LoopStart->getOpcode() != ARM::t2WhileLoopSetup) in LowerWhileLoopStart()
239 Register LR = LoopStart->getOperand(0).getReg(); in LowerWhileLoopStart()
244 RevertWhileLoopSetup(LoopStart, TII); in LowerWhileLoopStart()
245 RevertLoopDec(LoopStart, TII); in LowerWhileLoopStart()
246 RevertLoopEnd(LoopStart, TII); in LowerWhileLoopStart()
253 .add(LoopStart->getOperand(1)) in LowerWhileLoopStart()
259 LoopStart->eraseFromParent(); in LowerWhileLoopStart()
274 MachineBasicBlock *PreHeader, MachineInstr *LoopStart) { in CheckForLRUseInPredecessors() argument
278 Visited.insert(LoopStart->getParent()); in CheckForLRUseInPredecessors()
294 LoopStart->getDebugLoc(), TII->get(ARM::t2DoLoopStart)); in CheckForLRUseInPredecessors()
295 MIB.add(LoopStart->getOperand(0)); in CheckForLRUseInPredecessors()
296 MIB.add(LoopStart->getOperand(1)); in CheckForLRUseInPredecessors()
299 LoopStart->getOperand(1).setIsKill(false); in CheckForLRUseInPredecessors()
302 RevertWhileLoopStartLR(LoopStart, TII, ARM::t2Bcc, true); in CheckForLRUseInPredecessors()
310 return LoopStart; in CheckForLRUseInPredecessors()
327 MachineInstr *LoopEnd, *LoopPhi, *LoopStart, *LoopDec; in MergeLoopEnd() local
328 if (!findLoopComponents(ML, MRI, LoopStart, LoopPhi, LoopDec, LoopEnd)) in MergeLoopEnd()
335 if (LoopStart->getOpcode() == ARM::t2WhileLoopStartLR && PreHeader) in MergeLoopEnd()
336 LoopStart = CheckForLRUseInPredecessors(PreHeader, LoopStart); in MergeLoopEnd()
342 if (LoopStart->getOpcode() == ARM::t2DoLoopStart) in MergeLoopEnd()
343 RevertDoLoopStart(LoopStart, TII); in MergeLoopEnd()
345 RevertWhileLoopStartLR(LoopStart, TII); in MergeLoopEnd()
358 Register StartReg = LoopStart->getOperand(0).getReg(); in MergeLoopEnd()
386 if (LoopStart->getOpcode() == ARM::t2WhileLoopStartLR) { in MergeLoopEnd()
387 RevertWhileLoopStartLR(LoopStart, TII); in MergeLoopEnd()
445 MachineInstr *LoopEnd, *LoopPhi, *LoopStart, *LoopDec; in ConvertTailPredLoop() local
446 if (!findLoopComponents(ML, MRI, LoopStart, LoopPhi, LoopDec, LoopEnd)) in ConvertTailPredLoop()
448 if (LoopDec != LoopEnd || (LoopStart->getOpcode() != ARM::t2DoLoopStart && in ConvertTailPredLoop()
449 LoopStart->getOpcode() != ARM::t2WhileLoopStartLR)) in ConvertTailPredLoop()
508 MachineBasicBlock *MBB = LoopStart->getParent(); in ConvertTailPredLoop()
511 MRI->use_instructions(LoopStart->getOperand(0).getReg())) in ConvertTailPredLoop()
518 unsigned NewOpc = LoopStart->getOpcode() == ARM::t2DoLoopStart in ConvertTailPredLoop()
522 BuildMI(*MBB, InsertPt, LoopStart->getDebugLoc(), TII->get(NewOpc)) in ConvertTailPredLoop()
523 .add(LoopStart->getOperand(0)) in ConvertTailPredLoop()
524 .add(LoopStart->getOperand(1)) in ConvertTailPredLoop()
527 MI.add(LoopStart->getOperand(2)); in ConvertTailPredLoop()
528 LLVM_DEBUG(dbgs() << "Replacing " << *LoopStart << " with " in ConvertTailPredLoop()
531 LoopStart->eraseFromParent(); in ConvertTailPredLoop()