• Home
  • Raw
  • Download

Lines Matching refs:Idx

299 bool SplitAnalysis::isOriginalEndpoint(SlotIndex Idx) const {  in isOriginalEndpoint()
303 LiveInterval::const_iterator I = Orig.find(Idx); in isOriginalEndpoint()
306 if (I != Orig.end() && I->start <= Idx) in isOriginalEndpoint()
307 return I->start == Idx; in isOriginalEndpoint()
310 return I != Orig.begin() && (--I)->end == Idx; in isOriginalEndpoint()
376 SlotIndex Idx) { in defValue() argument
378 assert(Idx.isValid() && "Invalid SlotIndex"); in defValue()
379 assert(Edit->getParent().getVNInfoAt(Idx) == ParentVNI && "Bad Parent VNI"); in defValue()
383 VNInfo *VNI = LI->getNextValue(Idx, LIS.getVNInfoAllocator()); in defValue()
473 void SplitEditor::selectIntv(unsigned Idx) { in selectIntv() argument
474 assert(Idx != 0 && "Cannot select the complement interval"); in selectIntv()
475 assert(Idx < Edit->size() && "Can only select previously opened interval"); in selectIntv()
476 DEBUG(dbgs() << " selectIntv " << OpenIdx << " -> " << Idx << '\n'); in selectIntv()
477 OpenIdx = Idx; in selectIntv()
480 SlotIndex SplitEditor::enterIntvBefore(SlotIndex Idx) { in enterIntvBefore() argument
482 DEBUG(dbgs() << " enterIntvBefore " << Idx); in enterIntvBefore()
483 Idx = Idx.getBaseIndex(); in enterIntvBefore()
484 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx); in enterIntvBefore()
487 return Idx; in enterIntvBefore()
490 MachineInstr *MI = LIS.getInstructionFromIndex(Idx); in enterIntvBefore()
493 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), MI); in enterIntvBefore()
497 SlotIndex SplitEditor::enterIntvAfter(SlotIndex Idx) { in enterIntvAfter() argument
499 DEBUG(dbgs() << " enterIntvAfter " << Idx); in enterIntvAfter()
500 Idx = Idx.getBoundaryIndex(); in enterIntvAfter()
501 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx); in enterIntvAfter()
504 return Idx; in enterIntvAfter()
507 MachineInstr *MI = LIS.getInstructionFromIndex(Idx); in enterIntvAfter()
510 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), in enterIntvAfter()
545 SlotIndex SplitEditor::leaveIntvAfter(SlotIndex Idx) { in leaveIntvAfter() argument
547 DEBUG(dbgs() << " leaveIntvAfter " << Idx); in leaveIntvAfter()
550 SlotIndex Boundary = Idx.getBoundaryIndex(); in leaveIntvAfter()
564 if (SpillMode && !SlotIndex::isSameInstr(ParentVNI->def, Idx) && in leaveIntvAfter()
567 defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI); in leaveIntvAfter()
568 return Idx; in leaveIntvAfter()
576 SlotIndex SplitEditor::leaveIntvBefore(SlotIndex Idx) { in leaveIntvBefore() argument
578 DEBUG(dbgs() << " leaveIntvBefore " << Idx); in leaveIntvBefore()
581 Idx = Idx.getBaseIndex(); in leaveIntvBefore()
582 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx); in leaveIntvBefore()
585 return Idx.getNextSlot(); in leaveIntvBefore()
589 MachineInstr *MI = LIS.getInstructionFromIndex(Idx); in leaveIntvBefore()
591 VNInfo *VNI = defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI); in leaveIntvBefore()
987 SlotIndex Idx = LIS.getInstructionIndex(MI); in rewriteAssigned() local
989 Idx = Idx.getRegSlot(MO.isEarlyClobber()); in rewriteAssigned()
992 unsigned RegIdx = RegAssign.lookup(Idx); in rewriteAssigned()
996 << Idx << ':' << RegIdx << '\t' << *MI); in rewriteAssigned()
1008 Idx = Idx.getPrevSlot(); in rewriteAssigned()
1009 if (!Edit->getParent().liveAt(Idx)) in rewriteAssigned()
1012 Idx = Idx.getRegSlot(true); in rewriteAssigned()
1014 getLRCalc(RegIdx).extend(LI, Idx.getNextSlot()); in rewriteAssigned()
1205 SlotIndex Idx = leaveIntvAtTop(*MBB); in splitLiveThroughBlock() local
1206 assert((!LeaveBefore || Idx <= LeaveBefore) && "Interference"); in splitLiveThroughBlock()
1207 (void)Idx; in splitLiveThroughBlock()
1219 SlotIndex Idx = enterIntvAtEnd(*MBB); in splitLiveThroughBlock() local
1220 assert((!EnterAfter || Idx >= EnterAfter) && "Interference"); in splitLiveThroughBlock()
1221 (void)Idx; in splitLiveThroughBlock()
1249 SlotIndex Idx; in splitLiveThroughBlock() local
1251 Idx = enterIntvBefore(LeaveBefore); in splitLiveThroughBlock()
1252 useIntv(Idx, Stop); in splitLiveThroughBlock()
1254 Idx = enterIntvAtEnd(*MBB); in splitLiveThroughBlock()
1257 useIntv(Start, Idx); in splitLiveThroughBlock()
1258 assert((!LeaveBefore || Idx <= LeaveBefore) && "Interference"); in splitLiveThroughBlock()
1259 assert((!EnterAfter || Idx >= EnterAfter) && "Interference"); in splitLiveThroughBlock()
1272 SlotIndex Idx = enterIntvAfter(EnterAfter); in splitLiveThroughBlock() local
1273 useIntv(Idx, Stop); in splitLiveThroughBlock()
1274 assert((!EnterAfter || Idx >= EnterAfter) && "Interference"); in splitLiveThroughBlock()
1277 Idx = leaveIntvBefore(LeaveBefore); in splitLiveThroughBlock()
1278 useIntv(Start, Idx); in splitLiveThroughBlock()
1279 assert((!LeaveBefore || Idx <= LeaveBefore) && "Interference"); in splitLiveThroughBlock()
1325 SlotIndex Idx = leaveIntvAfter(BI.LastInstr); in splitRegInBlock() local
1326 useIntv(Start, Idx); in splitRegInBlock()
1327 assert((!LeaveBefore || Idx <= LeaveBefore) && "Interference"); in splitRegInBlock()
1331 SlotIndex Idx = leaveIntvBefore(LSP); in splitRegInBlock() local
1332 overlapIntv(Idx, BI.LastInstr); in splitRegInBlock()
1333 useIntv(Start, Idx); in splitRegInBlock()
1334 assert((!LeaveBefore || Idx <= LeaveBefore) && "Interference"); in splitRegInBlock()
1411 SlotIndex Idx = enterIntvBefore(std::min(LSP, BI.FirstInstr)); in splitRegOutBlock() local
1412 useIntv(Idx, Stop); in splitRegOutBlock()
1413 assert((!EnterAfter || Idx >= EnterAfter) && "Interference"); in splitRegOutBlock()
1427 SlotIndex Idx = enterIntvAfter(EnterAfter); in splitRegOutBlock() local
1428 useIntv(Idx, Stop); in splitRegOutBlock()
1429 assert((!EnterAfter || Idx >= EnterAfter) && "Interference"); in splitRegOutBlock()
1432 SlotIndex From = enterIntvBefore(std::min(Idx, BI.FirstInstr)); in splitRegOutBlock()
1433 useIntv(From, Idx); in splitRegOutBlock()