/external/llvm/include/llvm/CodeGen/ |
D | SlotIndexes.h | 92 class SlotIndex { 121 SlotIndex(IndexListEntry *entry, unsigned slot) 150 SlotIndex() : lie(nullptr, 0) {} 153 SlotIndex(const SlotIndex &li, Slot s) : lie(li.listEntry(), unsigned(s)) { 174 bool operator==(SlotIndex other) const { 178 bool operator!=(SlotIndex other) const { 184 bool operator<(SlotIndex other) const { 189 bool operator<=(SlotIndex other) const { 195 bool operator>(SlotIndex other) const { 201 bool operator>=(SlotIndex other) const { [all …]
|
D | LiveInterval.h | 54 SlotIndex def; 57 VNInfo(unsigned i, SlotIndex d) in VNInfo() 81 void markUnused() { def = SlotIndex(); } in markUnused() 90 const SlotIndex EndPoint; 94 LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint, in LiveQueryResult() 144 SlotIndex endPoint() const { in endPoint() 161 SlotIndex start; // Start point of the interval (inclusive) 162 SlotIndex end; // End point of the interval (exclusive) 167 Segment(SlotIndex S, SlotIndex E, VNInfo *V) in Segment() 173 bool contains(SlotIndex I) const { in contains() [all …]
|
D | LiveIntervalAnalysis.h | 73 SmallVector<SlotIndex, 8> RegMaskSlots; 175 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices); 185 void pruneValue(LiveRange &LR, SlotIndex Kill, 186 SmallVectorImpl<SlotIndex> *EndPoints); 203 SlotIndex getInstructionIndex(const MachineInstr *instr) const { in getInstructionIndex() 208 MachineInstr* getInstructionFromIndex(SlotIndex index) const { in getInstructionFromIndex() 213 SlotIndex getMBBStartIdx(const MachineBasicBlock *mbb) const { in getMBBStartIdx() 218 SlotIndex getMBBEndIdx(const MachineBasicBlock *mbb) const { in getMBBEndIdx() 232 MachineBasicBlock* getMBBFromIndex(SlotIndex index) const { in getMBBFromIndex() 243 SlotIndex InsertMachineInstrInMaps(MachineInstr *MI) { in InsertMachineInstrInMaps() [all …]
|
D | LiveRangeEdit.h | 88 bool allUsesAvailableAt(const MachineInstr *OrigMI, SlotIndex OrigIdx, 89 SlotIndex UseIdx) const; 186 SlotIndex UseIdx, 193 SlotIndex rematerializeAt(MachineBasicBlock &MBB,
|
D | LiveIntervalUnion.h | 36 const IntervalMap<SlotIndex, LiveInterval*>::const_iterator &LUSeg) { in overlap() argument 48 typedef IntervalMap<SlotIndex, LiveInterval*> LiveSegments; 72 SegmentIter find(SlotIndex x) { return Segments.find(x); } in find() 74 SlotIndex startIndex() const { return Segments.start(); } in startIndex()
|
D | RegisterPressure.h | 52 SlotIndex TopIdx; 53 SlotIndex BottomIdx; 57 void openTop(SlotIndex NextTop); 59 void openBottom(SlotIndex PrevBottom); 442 SlotIndex getCurrSlot() const;
|
/external/llvm/lib/CodeGen/ |
D | SplitKit.h | 69 SlotIndex FirstInstr; ///< First instr accessing current reg. 70 SlotIndex LastInstr; ///< Last instr accessing current reg. 71 SlotIndex FirstDef; ///< First non-phi valno->def, or SlotIndex(). 78 return SlotIndex::isSameInstr(FirstInstr, LastInstr); in isOneInstr() 87 SmallVector<SlotIndex, 8> UseSlots; 93 SmallVector<std::pair<SlotIndex, SlotIndex>, 8> LastSplitPoint; 111 SlotIndex computeLastSplitPoint(unsigned Num); 141 SlotIndex getLastSplitPoint(unsigned Num) { in getLastSplitPoint() 157 bool isOriginalEndpoint(SlotIndex Idx) const; 161 ArrayRef<SlotIndex> getUseSlots() const { return UseSlots; } in getUseSlots() [all …]
|
D | SplitKit.cpp | 57 SlotIndex SplitAnalysis::computeLastSplitPoint(unsigned Num) { in computeLastSplitPoint() 61 std::pair<SlotIndex, SlotIndex> &LSP = LastSplitPoint[Num]; in computeLastSplitPoint() 62 SlotIndex MBBEnd = LIS.getMBBEndIdx(MBB); in computeLastSplitPoint() 102 if (!SlotIndex::isEarlierInstr(VNI->def, LSP.second) && VNI->def < MBBEnd) in computeLastSplitPoint() 112 SlotIndex LSP = getLastSplitPoint(MBB->getNumber()); in getLastSplitPointIter() 139 SlotIndex::isSameInstr), in analyzeUses() 175 SmallVectorImpl<SlotIndex>::const_iterator UseI, UseE; in calcLiveBlockInfo() 185 SlotIndex Start, Stop; in calcLiveBlockInfo() 220 SlotIndex LastStop = LVI->end; in calcLiveBlockInfo() 282 SlotIndex Stop = LIS.getMBBEndIdx(&*MFI); in countLiveBlocks() [all …]
|
D | SlotIndexes.cpp | 77 SlotIndex blockStartIndex(&indexList.back(), SlotIndex::Slot_Block); in runOnMachineFunction() 86 indexList.push_back(createEntry(mi, index += SlotIndex::InstrDist)); in runOnMachineFunction() 89 mi2iMap.insert(std::make_pair(mi, SlotIndex(&indexList.back(), in runOnMachineFunction() 90 SlotIndex::Slot_Block))); in runOnMachineFunction() 94 indexList.push_back(createEntry(nullptr, index += SlotIndex::InstrDist)); in runOnMachineFunction() 97 MBBRanges[mbb->getNumber()].second = SlotIndex(&indexList.back(), in runOnMachineFunction() 98 SlotIndex::Slot_Block); in runOnMachineFunction() 121 index += SlotIndex::InstrDist; in renumberIndexes() 129 const unsigned Space = SlotIndex::InstrDist/2; in renumberIndexes() 159 SlotIndex startIdx; in repairIndexesInRange() [all …]
|
D | LiveIntervalAnalysis.cpp | 324 SlotIndex Begin = Indexes->getMBBStartIdx(MBB); in computeLiveInRegUnits() 357 SlotIndex Def = VNI->def; in createSegmentsForValues() 362 typedef SmallVector<std::pair<SlotIndex, VNInfo*>, 16> ShrinkToUsesWorkList; 374 SlotIndex Idx = WorkList.back().first; in extendSegmentsToUses() 378 SlotIndex BlockStart = Indexes.getMBBStartIdx(MBB); in extendSegmentsToUses() 392 SlotIndex Stop = Indexes.getMBBEndIdx(Pred); in extendSegmentsToUses() 408 SlotIndex Stop = Indexes.getMBBEndIdx(Pred); in extendSegmentsToUses() 442 SlotIndex Idx = getInstructionIndex(UseMI).getRegSlot(); in shrinkToUses() 482 SlotIndex Def = VNI->def; in computeDeadValues() 537 SlotIndex LastIdx; in shrinkToUses() [all …]
|
D | LiveRangeCalc.h | 89 SlotIndex Kill; 94 LiveInBlock(LiveRange &LR, MachineDomTreeNode *node, SlotIndex kill) in LiveInBlock() 115 SlotIndex Kill, unsigned PhysReg); 172 void extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg = 0); 227 SlotIndex Kill = SlotIndex()) {
|
D | InterferenceCache.cpp | 87 PrevPos = SlotIndex(); in revalidate() 104 PrevPos = SlotIndex(); in reset() 125 SlotIndex Start, Stop; in update() 150 ArrayRef<SlotIndex> RegMaskSlots; in update() 154 BI->First = BI->Last = SlotIndex(); in update() 161 SlotIndex StartI = I.start(); in update() 174 SlotIndex StartI = I->start; in update() 184 SlotIndex Limit = BI->First.isValid() ? BI->First : Stop; in update() 216 SlotIndex StopI = I.stop(); in update() 233 SlotIndex StopI = I->end; in update() [all …]
|
D | LiveDebugVariables.cpp | 76 typedef IntervalMap<SlotIndex, unsigned, 4> LocMap; 132 void insertDebugValue(MachineBasicBlock *MBB, SlotIndex Idx, unsigned LocNo, 211 void addDef(SlotIndex Idx, const MachineOperand &LocMO) { in addDef() 232 void extendDef(SlotIndex Idx, unsigned LocNo, 234 SmallVectorImpl<SlotIndex> *Kills, 246 const SmallVectorImpl<SlotIndex> &Kills, 247 SmallVectorImpl<std::pair<SlotIndex, unsigned> > &NewDefs, 314 bool handleDebugValue(MachineInstr *MI, SlotIndex Idx); 488 bool LDVImpl::handleDebugValue(MachineInstr *MI, SlotIndex Idx) { in handleDebugValue() 521 SlotIndex Idx = MBBI == MBB->begin() ? in collectDebugValues() [all …]
|
D | InterferenceCache.h | 34 SlotIndex First; 35 SlotIndex Last; 61 SlotIndex PrevPos; 222 SlotIndex first() { in first() 228 SlotIndex last() { in last()
|
D | LiveInterval.cpp | 61 VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator &VNInfoAllocator) { in createDeadDef() 72 if (SlotIndex::isSameInstr(Def, S->start)) { in createDeadDef() 85 assert(SlotIndex::isEarlierInstr(Def, S->start) && "Already live at def"); in createDeadDef() 91 VNInfo *extendInBlock(SlotIndex StartIdx, SlotIndex Use) { in extendInBlock() 110 void extendSegmentEndTo(iterator I, SlotIndex NewEnd) { in extendSegmentEndTo() 138 iterator extendSegmentStartTo(iterator I, SlotIndex NewStart) { in extendSegmentStartTo() 172 SlotIndex Start = S.start, End = S.end; in addSegment() 248 iterator find(SlotIndex Pos) { return LR->find(Pos); } in find() 278 iterator find(SlotIndex Pos) { in find() 302 LiveRange::iterator LiveRange::find(SlotIndex Pos) { in find() [all …]
|
D | LiveRangeCalc.cpp | 46 SlotIndex DefIdx = in createDeadDef() 170 SlotIndex UseIdx; in extendToUses() 204 SlotIndex Start, End; in updateFromLiveIns() 223 void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg) { in extend() 259 SlotIndex Use, unsigned PhysReg) { in findReachingDefs() 308 SlotIndex Start, End; in findReachingDefs() 327 Use = SlotIndex(); in findReachingDefs() 343 SlotIndex Start, End; in findReachingDefs() 436 SlotIndex Start, End; in updateSSA()
|
D | LiveRangeEdit.cpp | 83 SlotIndex OrigIdx, in allUsesAvailableAt() 84 SlotIndex UseIdx) const { in allUsesAvailableAt() 107 if (SlotIndex::isSameInstr(OrigIdx, UseIdx)) in allUsesAvailableAt() 117 SlotIndex UseIdx, in canRematerializeAt() 126 SlotIndex DefIdx; in canRematerializeAt() 146 SlotIndex LiveRangeEdit::rematerializeAt(MachineBasicBlock &MBB, in rematerializeAt() 224 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot(); in useIsKill() 240 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot(); in eliminateDeadDef()
|
D | RegisterCoalescer.cpp | 470 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot(); in adjustCopiesBackFrom() 498 SlotIndex CopyUseIdx = CopyIdx.getRegSlot(true); in adjustCopiesBackFrom() 531 SlotIndex FillerStart = ValS->end, FillerEnd = BS->start; in adjustCopiesBackFrom() 645 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot(); in removeCopyByCommutingDef() 695 SlotIndex UseIdx = LIS->getInstructionIndex(UseMI); in removeCopyByCommutingDef() 749 SlotIndex UseIdx = LIS->getInstructionIndex(UseMI).getRegSlot(true); in removeCopyByCommutingDef() 770 SlotIndex DefIdx = UseIdx.getRegSlot(); in removeCopyByCommutingDef() 799 SlotIndex AIdx = CopyIdx.getRegSlot(true); in removeCopyByCommutingDef() 882 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI); in reMaterializeTrivialDef() 1028 SlotIndex NewMIIdx = LIS->getInstructionIndex(NewMI); in reMaterializeTrivialDef() [all …]
|
D | RegisterPressure.cpp | 115 TopIdx = BottomIdx = SlotIndex(); in reset() 131 void IntervalPressure::openTop(SlotIndex NextTop) { in openTop() 134 TopIdx = SlotIndex(); in openTop() 147 void IntervalPressure::openBottom(SlotIndex PrevBottom) { in openBottom() 150 BottomIdx = SlotIndex(); in openBottom() 248 SlotIndex RegPressureTracker::getCurrSlot() const { in getCurrSlot() 402 SlotIndex SlotIdx = LIS.getInstructionIndex(&MI); in detectDeadDefs() 534 SlotIndex SlotIdx; in recede() 598 SlotIndex SlotIdx; in advance() 897 static bool findUseBetween(unsigned Reg, SlotIndex PriorUseIdx, in findUseBetween() [all …]
|
D | StackColoring.cpp | 371 SmallVector<SlotIndex, 16> Starts; in calculateLiveIntervals() 372 SmallVector<SlotIndex, 16> Finishes; in calculateLiveIntervals() 396 SlotIndex ThisIndex = Indexes->getInstructionIndex(MI); in calculateLiveIntervals() 425 SlotIndex S = Starts[i]; in calculateLiveIntervals() 426 SlotIndex F = Finishes[i]; in calculateLiveIntervals() 433 SlotIndex NewStart = Indexes->getMBBStartIdx(&MBB); in calculateLiveIntervals() 434 SlotIndex NewFin = Indexes->getMBBEndIdx(&MBB); in calculateLiveIntervals() 559 SlotIndex Index = Indexes->getInstructionIndex(&I); in remapInstructions() 610 SlotIndex Index = Indexes->getInstructionIndex(&I); in removeInvalidSlotRanges()
|
D | RegAllocGreedy.cpp | 566 (Size / SlotIndex::InstrDist) > (2 * RC.getNumRegs()); in enqueue() 1225 SlotIndex IntfIn, IntfOut; in splitAroundRegion() 1274 SlotIndex IntfIn, IntfOut; in splitAroundRegion() 1583 ArrayRef<SlotIndex> Uses = SA->getUseSlots(); in tryInstructionSplit() 1606 SlotIndex SegStart = SE->enterIntvBefore(Uses[i]); in tryInstructionSplit() 1607 SlotIndex SegStop = SE->leaveIntvAfter(Uses[i]); in tryInstructionSplit() 1641 ArrayRef<SlotIndex> Uses = SA->getUseSlots(); in calcGapWeights() 1645 SlotIndex StartIdx = in calcGapWeights() 1647 SlotIndex StopIdx = in calcGapWeights() 1727 ArrayRef<SlotIndex> Uses = SA->getUseSlots(); in tryLocalSplit() [all …]
|
D | InlineSpiller.cpp | 178 void insertReload(unsigned VReg, SlotIndex, MachineBasicBlock::iterator MI); 688 SlotIndex Idx = LIS.getInstructionIndex(CopyMI); in hoistSpill() 787 SlotIndex Idx = LIS.getInstructionIndex(MI); in eliminateRedundantSpills() 867 SlotIndex UseIdx = LIS.getInstructionIndex(MI).getRegSlot(true); in reMaterializeFor() 916 SlotIndex DefIdx = Edit->rematerializeAt(*MI->getParent(), MI, NewVReg, RM, in reMaterializeFor() 1059 SlotIndex Idx = LIS.getInstructionIndex(I).getRegSlot(); in dumpMachineInstrRangeWithSlotIndex() 1146 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot(); in foldMemoryOperand() 1184 SlotIndex Idx, in insertReload() 1261 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot(); in spillAroundUses() 1263 if (SlotIndex::isSameInstr(Idx, VNI->def)) in spillAroundUses() [all …]
|
D | VirtRegMap.cpp | 249 SlotIndex First; in addLiveInsForSubRanges() 250 SlotIndex Last; in addLiveInsForSubRanges() 263 SlotIndex MBBBegin = MBBI->first; in addLiveInsForSubRanges() 332 SlotIndex BaseIndex = LIS->getInstructionIndex(&MI); in readsUndefSubreg()
|
/external/llvm/lib/Target/Hexagon/ |
D | HexagonExpandCondsets.cpp | 146 LiveInterval::iterator nextSegment(LiveInterval &LI, SlotIndex S); 147 LiveInterval::iterator prevSegment(LiveInterval &LI, SlotIndex S); 148 void makeDefined(unsigned Reg, SlotIndex S, bool SetDef); 149 void makeUndead(unsigned Reg, SlotIndex S); 152 void terminateSegment(LiveInterval::iterator LT, SlotIndex S, 242 SlotIndex S) { in nextSegment() 252 SlotIndex S) { in prevSegment() 270 void HexagonExpandCondsets::makeDefined(unsigned Reg, SlotIndex S, in makeDefined() 286 void HexagonExpandCondsets::makeUndead(unsigned Reg, SlotIndex S) { in makeUndead() 343 SlotIndex S = LIS->getInstructionIndex(MI).getRegSlot(); in shrinkToUses() [all …]
|
/external/llvm/lib/Target/AMDGPU/ |
D | SILoadStoreOptimizer.cpp | 275 SlotIndex PairedIndex = LIS->getInstructionIndex(Paired); in mergeRead2Pair() 294 SlotIndex Read2Index = LIS->getInstructionIndex(Read2); in mergeRead2Pair() 343 SlotIndex PairedIndex = LIS->getInstructionIndex(Paired); in mergeWrite2Pair() 371 SlotIndex Write2Index = LIS->getInstructionIndex(Write2); in mergeWrite2Pair()
|