Lines Matching defs:Start
606 // range. It is possible that KillMBB itself is reachable, so start a DFS
706 if (I == RURange.end() || I->start >= RI->end)
734 if (I == SR.end() || I->start >= RI->end)
765 if (N != LI.end() && N->start == RI->end)
787 SlotIndex Start = LI.beginIndex();
788 if (Start.isBlock())
797 MachineBasicBlock *MBB1 = Indexes->getMBBFromIndex(Start);
863 // Start with a binary search of RegMaskSlots to find a starting point.
865 std::lower_bound(Slots.begin(), Slots.end(), LiveI->start);
874 assert(*SlotI >= LiveI->start);
894 while (*SlotI < LiveI->start)
1011 if (OldIdxIn == E || SlotIndex::isEarlierInstr(OldIdx, OldIdxIn->start))
1016 if (SlotIndex::isEarlierInstr(OldIdxIn->start, OldIdx)) {
1030 if (Next != E && !SlotIndex::isSameInstr(OldIdx, Next->start) &&
1031 SlotIndex::isEarlierInstr(Next->start, NewIdx)) {
1038 !SlotIndex::isEarlierInstr(NewIdxIn->start, NewIdx)) {
1055 if (OldIdxOut == E || !SlotIndex::isSameInstr(OldIdx, OldIdxOut->start))
1063 assert(OldIdxOut != E && SlotIndex::isSameInstr(OldIdx, OldIdxOut->start) &&
1066 assert(OldIdxVNI->def == OldIdxOut->start && "Inconsistent def");
1070 SlotIndex NewIdxDef = NewIdx.getRegSlot(OldIdxOut->start.isEarlyClobber());
1073 OldIdxOut->start = OldIdxVNI->def;
1090 OldIdxOut->start)) {
1105 INext->start = OldIdxOut->end;
1106 INext->valno->def = INext->start;
1131 if (SlotIndex::isEarlierInstr(Prev->start, NewIdxDef)) {
1138 *Prev = LiveRange::Segment(Prev->start, NewIdxDef, DefVNI);
1139 DefVNI->def = Prev->start;
1142 // turn Prev into a segment from NewIdx to AfterNewIdx->start.
1143 *Prev = LiveRange::Segment(NewIdxDef, AfterNewIdx->start, DefVNI);
1152 SlotIndex::isSameInstr(AfterNewIdx->start, NewIdxDef)) {
1182 if (OldIdxIn == E || SlotIndex::isEarlierInstr(OldIdx, OldIdxIn->start))
1187 if (SlotIndex::isEarlierInstr(OldIdxIn->start, OldIdx)) {
1198 = std::max(OldIdxIn->start.getDeadSlot(),
1204 if (OldIdxOut == E || !SlotIndex::isSameInstr(OldIdx, OldIdxOut->start))
1213 assert(OldIdxOut != E && SlotIndex::isSameInstr(OldIdx, OldIdxOut->start) &&
1216 assert(OldIdxVNI->def == OldIdxOut->start && "Inconsistent def");
1220 SlotIndex NewIdxDef = NewIdx.getRegSlot(OldIdxOut->start.isEarlyClobber());
1222 if (SlotIndex::isSameInstr(NewIdxOut->start, NewIdx)) {
1230 OldIdxOut->start = NewIdxDef;
1242 SlotIndex::isEarlierInstr(NewIdxDef, OldIdxIn->start)) {
1243 // OldIdx is not a dead def and NewIdx is before predecessor start.
1249 *OldIdxOut = LiveRange::Segment(OldIdxIn->start, OldIdxOut->end,
1260 if (SlotIndex::isEarlierInstr(Next->start, NewIdx)) {
1262 *NewSegment = LiveRange::Segment(Next->start, SplitPos,
1269 *NewSegment = LiveRange::Segment(SplitPos, Next->start, OldIdxVNI);
1274 OldIdxOut->start = NewIdxDef;
1397 if (LII != LR.end() && LII->start < endIdx)
1409 bool isStartValid = getInstructionFromIndex(LII->start);
1431 prevStart = std::prev(LII)->start;
1441 LII->start = instrIdx.getRegSlot();
1456 } else if (LII->start != instrIdx.getRegSlot()) {