Lines Matching refs:End
205 for (MachineFunction::iterator MBBI = MF->begin(), E = MF->end();
210 for (MachineBasicBlock::iterator MI = MBB->begin(), ME = MBB->end();
279 for (MachineFunction::const_iterator MFI = MF->begin(), MFE = MF->end();
434 assert(LRI != LR.end() && "Missing segment for PHI");
435 if (LRI->end != VNI->def.getDeadSlot())
440 LR.removeSegment(LRI->start, LRI->end);
549 RU.push_back(std::make_pair(&RURanges, RURanges.find(LI->begin()->end)));
552 // Every instruction that kills Reg corresponds to a segment range end
554 for (LiveInterval::iterator RI = LI->begin(), RE = LI->end(); RI != RE;
557 if (RI->end.isBlock())
559 MachineInstr *MI = getInstructionFromIndex(RI->end);
563 // Check if any of the regunits are live beyond the end of RI. That could
575 if (I == RRanges.end())
577 I = RRanges.advanceTo(I, RI->end);
578 if (I == RRanges.end() || I->start >= RI->end)
667 LiveInterval::iterator LiveI = LI.begin(), LiveE = LI.end();
683 std::lower_bound(Slots.begin(), Slots.end(), LiveI->start);
684 ArrayRef<SlotIndex>::iterator SlotE = Slots.end();
694 while (*SlotI < LiveI->end) {
829 LiveRange::iterator E = LR.end();
836 bool isKill = SlotIndex::isSameInstr(OldIdx, I->end);
838 if (!SlotIndex::isEarlierInstr(I->end, NewIdx))
843 if (MachineInstr *KillMI = LIS.getInstructionFromIndex(I->end))
847 // Adjust I->end to reach NewIdx. This may temporarily make LR invalid by
849 I->end = NewIdx.getRegSlot(I->end.isEarlyClobber());
865 if (SlotIndex::isEarlierInstr(NewIdx, I->end)) {
870 // 2. Live def at OldIdx, killed at NewIdx: isSameInstr(I->end, NewIdx).
871 // 3. Dead def at OldIdx: I->end = OldIdx.getDeadSlot().
873 assert((I->end == OldIdx.getDeadSlot() ||
874 SlotIndex::isSameInstr(I->end, NewIdx)) &&
901 /// Hoist def+end to NewIdx, possibly move across other values.
917 LiveRange::iterator E = LR.end();
925 if (!SlotIndex::isSameInstr(OldIdx, I->end))
927 // Adjust I->end to end at NewIdx. If we are hoisting a kill above
929 I->end = NewIdx.getRegSlot(I->end.isEarlyClobber());
935 std::prev(I)->end = findLastUseBefore(Reg).getRegSlot();
951 if (I->end.isDead()) {
963 if (!I->end.isDead()) {
964 // Leave the end point of a live def.
977 std::lower_bound(LIS.RegMaskSlots.begin(), LIS.RegMaskSlots.end(),
979 assert(RI != LIS.RegMaskSlots.end() && *RI == OldIdx.getRegSlot() &&
985 assert((std::next(RI) == LIS.RegMaskSlots.end() ||
1014 // point to the next instruction after OldIdx, or MBB->end().
1015 MachineBasicBlock::iterator MII = MBB->end();
1068 MachineBasicBlock::iterator End,
1070 // Find anchor points, which are at the beginning/end of blocks or at
1074 while (End != MBB->end() && !Indexes->hasIndex(End))
1075 ++End;
1078 if (End == MBB->end())
1081 endIdx = getInstructionIndex(End);
1083 Indexes->repairIndexesInRange(MBB, Begin, End);
1085 for (MachineBasicBlock::iterator I = End; I != Begin;) {
1112 if (LII != LI.end() && LII->start < endIdx)
1113 lastUseIdx = LII->end;
1117 for (MachineBasicBlock::iterator I = End; I != Begin;) {
1125 bool isEndValid = getInstructionFromIndex(LII->end);
1137 if (LII->end.isDead()) {
1181 if (!isEndValid && !LII->end.isBlock())
1182 LII->end = instrIdx.getRegSlot();