Lines Matching refs:Idx

334 bool SplitAnalysis::isOriginalEndpoint(SlotIndex Idx) const {  in isOriginalEndpoint()
338 LiveInterval::const_iterator I = Orig.find(Idx); in isOriginalEndpoint()
341 if (I != Orig.end() && I->start <= Idx) in isOriginalEndpoint()
342 return I->start == Idx; in isOriginalEndpoint()
345 return I != Orig.begin() && (--I)->end == Idx; in isOriginalEndpoint()
473 SlotIndex Idx, in defValue() argument
476 assert(Idx.isValid() && "Invalid SlotIndex"); in defValue()
477 assert(Edit->getParent().getVNInfoAt(Idx) == ParentVNI && "Bad Parent VNI"); in defValue()
481 VNInfo *VNI = LI->getNextValue(Idx, LIS.getVNInfoAllocator()); in defValue()
657 void SplitEditor::selectIntv(unsigned Idx) { in selectIntv() argument
658 assert(Idx != 0 && "Cannot select the complement interval"); in selectIntv()
659 assert(Idx < Edit->size() && "Can only select previously opened interval"); in selectIntv()
660 LLVM_DEBUG(dbgs() << " selectIntv " << OpenIdx << " -> " << Idx << '\n'); in selectIntv()
661 OpenIdx = Idx; in selectIntv()
664 SlotIndex SplitEditor::enterIntvBefore(SlotIndex Idx) { in enterIntvBefore() argument
666 LLVM_DEBUG(dbgs() << " enterIntvBefore " << Idx); in enterIntvBefore()
667 Idx = Idx.getBaseIndex(); in enterIntvBefore()
668 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx); in enterIntvBefore()
671 return Idx; in enterIntvBefore()
674 MachineInstr *MI = LIS.getInstructionFromIndex(Idx); in enterIntvBefore()
677 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), MI); in enterIntvBefore()
681 SlotIndex SplitEditor::enterIntvAfter(SlotIndex Idx) { in enterIntvAfter() argument
683 LLVM_DEBUG(dbgs() << " enterIntvAfter " << Idx); in enterIntvAfter()
684 Idx = Idx.getBoundaryIndex(); in enterIntvAfter()
685 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx); in enterIntvAfter()
688 return Idx; in enterIntvAfter()
691 MachineInstr *MI = LIS.getInstructionFromIndex(Idx); in enterIntvAfter()
694 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), in enterIntvAfter()
747 SlotIndex SplitEditor::leaveIntvAfter(SlotIndex Idx) { in leaveIntvAfter() argument
749 LLVM_DEBUG(dbgs() << " leaveIntvAfter " << Idx); in leaveIntvAfter()
752 SlotIndex Boundary = Idx.getBoundaryIndex(); in leaveIntvAfter()
766 if (SpillMode && !SlotIndex::isSameInstr(ParentVNI->def, Idx) && in leaveIntvAfter()
769 defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI); in leaveIntvAfter()
770 return Idx; in leaveIntvAfter()
778 SlotIndex SplitEditor::leaveIntvBefore(SlotIndex Idx) { in leaveIntvBefore() argument
780 LLVM_DEBUG(dbgs() << " leaveIntvBefore " << Idx); in leaveIntvBefore()
783 Idx = Idx.getBaseIndex(); in leaveIntvBefore()
784 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx); in leaveIntvBefore()
787 return Idx.getNextSlot(); in leaveIntvBefore()
791 MachineInstr *MI = LIS.getInstructionFromIndex(Idx); in leaveIntvBefore()
793 VNInfo *VNI = defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI); in leaveIntvBefore()
1342 SlotIndex Idx = LIS.getInstructionIndex(*MI); in rewriteAssigned() local
1344 Idx = Idx.getRegSlot(MO.isEarlyClobber()); in rewriteAssigned()
1347 unsigned RegIdx = RegAssign.lookup(Idx); in rewriteAssigned()
1351 << '\t' << Idx << ':' << RegIdx << '\t' << *MI); in rewriteAssigned()
1363 if (!Edit->getParent().liveAt(Idx.getPrevSlot())) in rewriteAssigned()
1387 Idx = Idx.getRegSlot(IsEarlyClobber); in rewriteAssigned()
1390 SlotIndex Next = Idx; in rewriteAssigned()
1660 SlotIndex Idx = leaveIntvAtTop(*MBB); in splitLiveThroughBlock() local
1661 assert((!LeaveBefore || Idx <= LeaveBefore) && "Interference"); in splitLiveThroughBlock()
1662 (void)Idx; in splitLiveThroughBlock()
1674 SlotIndex Idx = enterIntvAtEnd(*MBB); in splitLiveThroughBlock() local
1675 assert((!EnterAfter || Idx >= EnterAfter) && "Interference"); in splitLiveThroughBlock()
1676 (void)Idx; in splitLiveThroughBlock()
1704 SlotIndex Idx; in splitLiveThroughBlock() local
1706 Idx = enterIntvBefore(LeaveBefore); in splitLiveThroughBlock()
1707 useIntv(Idx, Stop); in splitLiveThroughBlock()
1709 Idx = enterIntvAtEnd(*MBB); in splitLiveThroughBlock()
1712 useIntv(Start, Idx); in splitLiveThroughBlock()
1713 assert((!LeaveBefore || Idx <= LeaveBefore) && "Interference"); in splitLiveThroughBlock()
1714 assert((!EnterAfter || Idx >= EnterAfter) && "Interference"); in splitLiveThroughBlock()
1727 SlotIndex Idx = enterIntvAfter(EnterAfter); in splitLiveThroughBlock() local
1728 useIntv(Idx, Stop); in splitLiveThroughBlock()
1729 assert((!EnterAfter || Idx >= EnterAfter) && "Interference"); in splitLiveThroughBlock()
1732 Idx = leaveIntvBefore(LeaveBefore); in splitLiveThroughBlock()
1733 useIntv(Start, Idx); in splitLiveThroughBlock()
1734 assert((!LeaveBefore || Idx <= LeaveBefore) && "Interference"); in splitLiveThroughBlock()
1780 SlotIndex Idx = leaveIntvAfter(BI.LastInstr); in splitRegInBlock() local
1781 useIntv(Start, Idx); in splitRegInBlock()
1782 assert((!LeaveBefore || Idx <= LeaveBefore) && "Interference"); in splitRegInBlock()
1786 SlotIndex Idx = leaveIntvBefore(LSP); in splitRegInBlock() local
1787 overlapIntv(Idx, BI.LastInstr); in splitRegInBlock()
1788 useIntv(Start, Idx); in splitRegInBlock()
1789 assert((!LeaveBefore || Idx <= LeaveBefore) && "Interference"); in splitRegInBlock()
1867 SlotIndex Idx = enterIntvBefore(std::min(LSP, BI.FirstInstr)); in splitRegOutBlock() local
1868 useIntv(Idx, Stop); in splitRegOutBlock()
1869 assert((!EnterAfter || Idx >= EnterAfter) && "Interference"); in splitRegOutBlock()
1883 SlotIndex Idx = enterIntvAfter(EnterAfter); in splitRegOutBlock() local
1884 useIntv(Idx, Stop); in splitRegOutBlock()
1885 assert((!EnterAfter || Idx >= EnterAfter) && "Interference"); in splitRegOutBlock()
1888 SlotIndex From = enterIntvBefore(std::min(Idx, BI.FirstInstr)); in splitRegOutBlock()
1889 useIntv(From, Idx); in splitRegOutBlock()