Home
last modified time | relevance | path

Searched refs:SlotIndex (Results 1 – 25 of 35) sorted by relevance

12

/external/llvm/include/llvm/CodeGen/
DSlotIndexes.h92 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 …]
DLiveInterval.h54 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 …]
DLiveIntervalAnalysis.h73 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 …]
DLiveRangeEdit.h88 bool allUsesAvailableAt(const MachineInstr *OrigMI, SlotIndex OrigIdx,
89 SlotIndex UseIdx) const;
186 SlotIndex UseIdx,
193 SlotIndex rematerializeAt(MachineBasicBlock &MBB,
DLiveIntervalUnion.h36 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()
DRegisterPressure.h52 SlotIndex TopIdx;
53 SlotIndex BottomIdx;
57 void openTop(SlotIndex NextTop);
59 void openBottom(SlotIndex PrevBottom);
442 SlotIndex getCurrSlot() const;
/external/llvm/lib/CodeGen/
DSplitKit.h69 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 …]
DSplitKit.cpp57 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 …]
DSlotIndexes.cpp77 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 …]
DLiveIntervalAnalysis.cpp324 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 …]
DLiveRangeCalc.h89 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()) {
DInterferenceCache.cpp87 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 …]
DLiveDebugVariables.cpp76 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 …]
DInterferenceCache.h34 SlotIndex First;
35 SlotIndex Last;
61 SlotIndex PrevPos;
222 SlotIndex first() { in first()
228 SlotIndex last() { in last()
DLiveInterval.cpp61 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 …]
DLiveRangeCalc.cpp46 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()
DLiveRangeEdit.cpp83 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()
DRegisterCoalescer.cpp470 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 …]
DRegisterPressure.cpp115 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 …]
DStackColoring.cpp371 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()
DRegAllocGreedy.cpp566 (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 …]
DInlineSpiller.cpp178 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 …]
DVirtRegMap.cpp249 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/
DHexagonExpandCondsets.cpp146 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/
DSILoadStoreOptimizer.cpp275 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()

12