Lines Matching refs:Start

127     MachineInstr *Start = nullptr;
163 // value, or if it's going to be equivalent to the operand to Start.
172 return Start && Dec && End;
181 VCTP->getOperand(1) : Start->getOperand(0);
185 bool IsDo = Start->getOpcode() == ARM::t2DoLoopStart;
193 if (Start) dbgs() << "ARM Loops: Found Loop Start: " << *Start;
199 else if (!(Start && Dec && End))
266 if (Start->getOperand(0).getReg() == ARM::LR)
267 return Start;
269 unsigned CountReg = Start->getOperand(0).getReg();
277 MachineBasicBlock *MBB = Start->getParent();
280 // - Is there a (mov lr, Count) before Start? If so, and nothing else writes
281 // to Count before Start, we can insert at that mov.
282 if (auto *LRDef = RDA->getReachingMIDef(Start, ARM::LR))
283 if (IsMoveLR(LRDef) && RDA->hasSameReachingDef(Start, LRDef, CountReg))
286 // - Is there a (mov lr, Count) after Start? If so, and nothing else writes
287 // to Count after Start, we can insert at that mov.
289 if (IsMoveLR(LRDef) && RDA->hasSameReachingDef(Start, LRDef, CountReg))
292 // We've found no suitable LR def and Start doesn't use LR directly. Can we
294 if (!RDA->isRegUsedAfter(Start, ARM::LR))
295 return Start;
452 if (Start->getOpcode() == ARM::t2WhileLoopStart &&
453 (BBUtils->getOffsetOf(Start) >
454 BBUtils->getOffsetOf(Start->getOperand(1).getMBB()) ||
455 !BBUtils->isBBInRange(Start, Start->getOperand(1).getMBB(), 4094))) {
467 LLVM_DEBUG(dbgs() << "ARM Loops: Start insertion point: " << *InsertPt);
491 // Start a new vpt block when we discover a vpt.
616 LoLoop.Start = SearchForStart(Preheader);
618 LoLoop.Start = SearchForStart(Preheader);
632 LoLoop.Start = &MI;
764 MachineInstr *Start = LoLoop.Start;
766 bool IsDo = Start->getOpcode() == ARM::t2DoLoopStart;
776 MIB.add(Start->getOperand(1));
783 if (auto *Def = RDA->getReachingMIDef(Start,
784 Start->getOperand(0).getReg())) {
806 if (InsertPt != Start)
808 Start->eraseFromParent();
1000 if (LoLoop.Start->getOpcode() == ARM::t2WhileLoopStart)
1001 RevertWhile(LoLoop.Start);
1003 LoLoop.Start->eraseFromParent();
1007 LoLoop.Start = ExpandLoopStart(LoLoop);
1008 RemoveDeadBranch(LoLoop.Start);
1041 for (auto *Start : Starts) {
1042 if (Start->getOpcode() == ARM::t2WhileLoopStart)
1043 RevertWhile(Start);
1045 Start->eraseFromParent();