Home
last modified time | relevance | path

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

123

/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DSlotIndexes.h66 class SlotIndex {
117 SlotIndex() = default;
122 SlotIndex(IndexListEntry *entry, unsigned slot) : lie(entry, slot) {} in SlotIndex() function
125 SlotIndex(const SlotIndex &li, Slot s) : lie(li.listEntry(), unsigned(s)) { in SlotIndex() function
145 bool operator==(SlotIndex other) const {
149 bool operator!=(SlotIndex other) const {
155 bool operator<(SlotIndex other) const {
160 bool operator<=(SlotIndex other) const {
166 bool operator>(SlotIndex other) const {
172 bool operator>=(SlotIndex other) const {
[all …]
H A DLiveInterval.h62 SlotIndex def;
65 VNInfo(unsigned i, SlotIndex d) : id(i), def(d) {} in VNInfo()
85 void markUnused() { def = SlotIndex(); } in markUnused()
94 const SlotIndex EndPoint;
98 LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint, in LiveQueryResult()
148 SlotIndex endPoint() const { in endPoint()
164 SlotIndex start; // Start point of the interval (inclusive)
165 SlotIndex end; // End point of the interval (exclusive)
171 Segment(SlotIndex S, SlotIndex E, VNInfo *V) in Segment()
177 bool contains(SlotIndex I) const { in contains()
[all …]
H A DLiveIntervals.h75 SmallVector<SlotIndex, 8> RegMaskSlots;
211 LLVM_ABI void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices,
212 ArrayRef<SlotIndex> Undefs);
214 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices) { in extendToIndices()
225 LLVM_ABI void pruneValue(LiveRange &LR, SlotIndex Kill,
226 SmallVectorImpl<SlotIndex> *EndPoints);
232 LLVM_ATTRIBUTE_UNUSED void pruneValue(LiveInterval &, SlotIndex, in pruneValue() argument
233 SmallVectorImpl<SlotIndex> *) { in pruneValue() argument
247 SlotIndex getInstructionIndex(const MachineInstr &Instr) const { in getInstructionIndex()
252 MachineInstr *getInstructionFromIndex(SlotIndex index) const { in getInstructionFromIndex()
[all …]
H A DLiveRangeCalc.h113 SlotIndex Kill;
118 LiveInBlock(LiveRange &LR, MachineDomTreeNode *node, SlotIndex kill) in LiveInBlock()
130 bool isDefOnEntry(LiveRange &LR, ArrayRef<SlotIndex> Undefs,
150 bool findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB, SlotIndex Use,
151 Register PhysReg, ArrayRef<SlotIndex> Undefs);
208 LLVM_ABI void extend(LiveRange &LR, SlotIndex Use, Register PhysReg,
209 ArrayRef<SlotIndex> Undefs);
245 SlotIndex Kill = SlotIndex()) {
263 isJointlyDominated(const MachineBasicBlock *MBB, ArrayRef<SlotIndex> Defs,
H A DLiveIntervalUnion.h46 using LiveSegments = IntervalMap<SlotIndex, const LiveInterval *>;
71 SegmentIter find(SlotIndex x) { return Segments.find(x); } in find()
74 ConstSegmentIter find(SlotIndex x) const { return Segments.find(x); } in find()
77 SlotIndex startIndex() const { return Segments.start(); } in startIndex()
78 SlotIndex endIndex() const { return Segments.stop(); } in endIndex()
H A DLiveRegMatrix.h116 bool checkInterference(SlotIndex Start, SlotIndex End, MCRegister PhysReg);
125 LaneBitmask checkInterferenceLanes(SlotIndex Start, SlotIndex End,
H A DRegisterPressure.h70 SlotIndex TopIdx;
71 SlotIndex BottomIdx;
75 LLVM_ABI void openTop(SlotIndex NextTop);
77 LLVM_ABI void openBottom(SlotIndex PrevBottom);
195 SlotIndex Pos,
557 LLVM_ABI SlotIndex getCurrSlot() const;
568 LLVM_ABI LaneBitmask getLastUsedLanes(Register RegUnit, SlotIndex Pos) const;
569 LLVM_ABI LaneBitmask getLiveLanesAt(Register RegUnit, SlotIndex Pos) const;
570 LLVM_ABI LaneBitmask getLiveThroughAt(Register RegUnit, SlotIndex Pos) const;
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DSplitKit.h58 SmallVector<std::pair<SlotIndex, SlotIndex>, 8> LastInsertPoint;
60 SlotIndex computeLastInsertPoint(const LiveInterval &CurLI,
67 SlotIndex getLastInsertPoint(const LiveInterval &CurLI, in getLastInsertPoint()
82 SlotIndex getFirstInsertPoint(MachineBasicBlock &MBB) { in getFirstInsertPoint()
83 SlotIndex Res = LIS.getMBBStartIdx(&MBB); in getFirstInsertPoint()
123 SlotIndex FirstInstr; ///< First instr accessing current reg.
124 SlotIndex LastInstr; ///< Last instr accessing current reg.
125 SlotIndex FirstDef; ///< First non-phi valno->def, or SlotIndex().
132 return SlotIndex::isSameInstr(FirstInstr, LastInstr); in isOneInstr()
147 SmallVector<SlotIndex, 8> UseSlots;
[all …]
H A DLiveIntervals.cpp201 for (SlotIndex Idx : RegMaskSlots) in print()
370 SlotIndex Begin = Indexes->getMBBStartIdx(&MBB); in computeLiveInRegUnits()
399 SlotIndex Def = VNI->def; in createSegmentsForValues()
430 SlotIndex Idx = WorkList.back().first; in extendSegmentsToUses()
434 SlotIndex BlockStart = Indexes->getMBBStartIdx(MBB); in extendSegmentsToUses()
448 SlotIndex Stop = Indexes->getMBBEndIdx(Pred); in extendSegmentsToUses()
464 SlotIndex Stop = Indexes->getMBBEndIdx(Pred); in extendSegmentsToUses()
475 SmallVector<SlotIndex,8> Undefs; in extendSegmentsToUses()
508 SlotIndex Idx = getInstructionIndex(UseMI).getRegSlot(); in shrinkToUses()
550 SlotIndex Def = VNI->def; in computeDeadValues()
[all …]
H A DSplitKit.cpp65 SlotIndex
69 std::pair<SlotIndex, SlotIndex> &LIP = LastInsertPoint[Num]; in computeLastInsertPoint()
70 SlotIndex MBBEnd = LIS.getMBBEndIdx(&MBB); in computeLastInsertPoint()
125 if (SlotIndex::isSameInstr(VNI->def, LIP.second)) in computeLastInsertPoint()
133 if (!SlotIndex::isEarlierInstr(VNI->def, LIP.second) && VNI->def < MBBEnd) in computeLastInsertPoint()
144 SlotIndex LIP = getLastInsertPoint(CurLI, MBB); in getLastInsertPointIter()
186 UseSlots.erase(llvm::unique(UseSlots, SlotIndex::isSameInstr), in analyzeUses()
208 SmallVectorImpl<SlotIndex>::const_iterator UseI, UseE; in calcLiveBlockInfo()
218 SlotIndex Start, Stop; in calcLiveBlockInfo()
252 SlotIndex LastStop = LVI->end; in calcLiveBlockInfo()
[all …]
H A DMLRegallocEvictAdvisor.h
H A DMLRegAllocEvictAdvisor.h31 SlotIndex Begin;
32 SlotIndex End;
38 MLModelRunner *RegallocRunner, function_ref<int(SlotIndex)> GetOpcode,
39 function_ref<float(SlotIndex)> GetMBBFreq,
40 function_ref<MachineBasicBlock *(SlotIndex)> GetMBBReference,
43 const SlotIndex LastIndex);
46 const SlotIndex CurrentIndex, const size_t CurrentInstructionIndex,
48 function_ref<float(SlotIndex)> GetMBBFreq,
H A DSlotIndexes.cpp98 SlotIndex blockStartIndex(&indexList.back(), SlotIndex::Slot_Block); in analyze()
105 indexList.push_back(*createEntry(&MI, index += SlotIndex::InstrDist)); in analyze()
109 &MI, SlotIndex(&indexList.back(), SlotIndex::Slot_Block))); in analyze()
113 indexList.push_back(*createEntry(nullptr, index += SlotIndex::InstrDist)); in analyze()
116 MBBRanges[MBB.getNumber()].second = SlotIndex(&indexList.back(), in analyze()
117 SlotIndex::Slot_Block); in analyze()
135 SlotIndex MIIndex = mi2iItr->second; in removeMachineInstrFromMaps()
148 SlotIndex MIIndex = mi2iItr->second; in removeSingleMachineInstrFromMaps()
174 const unsigned Space = SlotIndex::InstrDist/2; in renumberIndexes()
195 SlotIndex startIdx; in repairIndexesInRange()
[all …]
H A DInterferenceCache.cpp93 PrevPos = SlotIndex(); in revalidate()
110 PrevPos = SlotIndex(); in reset()
132 SlotIndex Start, Stop; in update()
155 ArrayRef<SlotIndex> RegMaskSlots; in update()
159 BI->First = BI->Last = SlotIndex(); in update()
166 SlotIndex StartI = I.start(); in update()
179 SlotIndex StartI = I->start; in update()
189 SlotIndex Limit = BI->First.isValid() ? BI->First : Stop; in update()
221 SlotIndex StopI = I.stop(); in update()
238 SlotIndex StopI = I->end; in update()
[all …]
H A DLiveDebugVariables.cpp265 using LocMap = IntervalMap<SlotIndex, DbgVariableValue, 4>;
308 SmallSet<SlotIndex, 2> trimmedDefs;
311 void insertDebugValue(MachineBasicBlock *MBB, SlotIndex StartIdx,
312 SlotIndex StopIdx, DbgVariableValue DbgValue,
418 void addDef(SlotIndex Idx, ArrayRef<MachineOperand> LocMOs, bool IsIndirect, in addDef()
449 extendDef(SlotIndex Idx, DbgVariableValue DbgValue,
452 std::optional<std::pair<SlotIndex, SmallVector<unsigned>>> &Kills,
467 SlotIndex KilledAt,
468 SmallVectorImpl<std::pair<SlotIndex, DbgVariableValue>> &NewDefs,
507 SlotIndex loc; ///< Slot used by the debug label.
[all …]
H A DLiveInterval.cpp87 VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator *VNInfoAllocator, in createDeadDef()
100 if (SlotIndex::isSameInstr(Def, S->start)) { in createDeadDef()
114 assert(SlotIndex::isEarlierInstr(Def, S->start) && "Already live at def"); in createDeadDef()
120 VNInfo *extendInBlock(SlotIndex StartIdx, SlotIndex Use) { in extendInBlock()
135 std::pair<VNInfo*,bool> extendInBlock(ArrayRef<SlotIndex> Undefs, in extendInBlock()
136 SlotIndex StartIdx, SlotIndex Use) { in extendInBlock()
139 SlotIndex BeforeUse = Use.getPrevSlot(); in extendInBlock()
158 void extendSegmentEndTo(iterator I, SlotIndex NewEnd) { in extendSegmentEndTo()
186 iterator extendSegmentStartTo(iterator I, SlotIndex NewStart) { in extendSegmentStartTo()
220 SlotIndex Start = S.start, End = S.end; in addSegment()
[all …]
H A DLiveRangeCalc.cpp38 static VNInfo UndefVNI(0xbad, SlotIndex());
68 SlotIndex Start, End; in updateFromLiveIns()
86 void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, Register PhysReg, in extend()
87 ArrayRef<SlotIndex> Undefs) { in extend()
121 bool LiveRangeCalc::isDefOnEntry(LiveRange &LR, ArrayRef<SlotIndex> Undefs, in isDefOnEntry()
152 SlotIndex Begin, End; in isDefOnEntry()
191 SlotIndex Use, Register PhysReg, in findReachingDefs()
192 ArrayRef<SlotIndex> Undefs) { in findReachingDefs()
246 SlotIndex Start, End; in findReachingDefs()
268 Use = SlotIndex(); in findReachingDefs()
[all …]
H A DRegisterPressure.cpp174 TopIdx = BottomIdx = SlotIndex(); in reset()
190 void IntervalPressure::openTop(SlotIndex NextTop) { in openTop()
193 TopIdx = SlotIndex(); in openTop()
206 void IntervalPressure::openBottom(SlotIndex PrevBottom) { in openBottom()
209 BottomIdx = SlotIndex(); in openBottom()
306 SlotIndex RegPressureTracker::getCurrSlot() const { in getCurrSlot()
418 bool TrackLaneMasks, Register RegUnit, SlotIndex Pos, in getLanesWithProperty()
420 bool (*Property)(const LiveRange &LR, SlotIndex Pos)) { in getLanesWithProperty()
448 SlotIndex Pos) { in getLiveLanesAt()
451 [](const LiveRange &LR, SlotIndex Pos) { in getLiveLanesAt()
[all …]
H A DRegisterCoalescer.cpp139 SlotIndex SI; ///< Slot where this PHI occurs.
154 using DbgValueLoc = std::pair<SlotIndex, MachineInstr *>;
318 void addUndefFlag(const LiveInterval &Int, SlotIndex UseIdx,
632 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in adjustCopiesBackFrom()
662 SlotIndex CopyUseIdx = CopyIdx.getRegSlot(true); in adjustCopiesBackFrom()
697 SlotIndex FillerStart = ValS->end, FillerEnd = BS->start; in adjustCopiesBackFrom()
717 if (SS != S.end() && SlotIndex::isSameInstr(SS->start, SS->end)) { in adjustCopiesBackFrom()
723 SlotIndex BBStart = in adjustCopiesBackFrom()
849 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in removeCopyByCommutingDef()
899 SlotIndex UseIdx = LIS->getInstructionIndex(*UseMI); in removeCopyByCommutingDef()
[all …]
H A DInterferenceCache.h37 SlotIndex First;
38 SlotIndex Last;
66 SlotIndex PrevPos;
229 SlotIndex first() { in first()
235 SlotIndex last() { in last()
H A DRenameIndependentSubregs.cpp195 SlotIndex Pos = LIS->getInstructionIndex(*MO.getParent()); in findComponents()
229 SlotIndex Pos = LIS->getInstructionIndex(*MI); in rewriteOperands()
297 static bool subRangeLiveAt(const LiveInterval &LI, SlotIndex Pos) { in subRangeLiveAt()
329 SlotIndex Def = VNI.def; in computeMainRangesFixFlags()
332 SlotIndex PredEnd = Indexes.getMBBEndIdx(PredMBB); in computeMainRangesFixFlags()
341 SlotIndex DefIdx = LIS->InsertMachineInstrInMaps(*ImpDef); in computeMainRangesFixFlags()
342 SlotIndex RegDefIdx = DefIdx.getRegSlot(); in computeMainRangesFixFlags()
368 SlotIndex Pos = LIS->getInstructionIndex(*MO.getParent()); in computeMainRangesFixFlags()
373 SlotIndex Pos = LIS->getInstructionIndex(*MO.getParent()).getDeadSlot(); in computeMainRangesFixFlags()
H A DLiveRangeEdit.cpp107 SlotIndex OrigIdx, in allUsesAvailableAt()
108 SlotIndex UseIdx) const { in allUsesAvailableAt()
131 if (SlotIndex::isSameInstr(OrigIdx, UseIdx)) in allUsesAvailableAt()
159 SlotIndex UseIdx) { in canRematerializeAt()
167 SlotIndex DefIdx; in canRematerializeAt()
178 SlotIndex LiveRangeEdit::rematerializeAt(MachineBasicBlock &MBB, in rematerializeAt()
265 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot(); in useIsKill()
281 SlotIndex Idx = LIS.getInstructionIndex(*MI).getRegSlot(); in eliminateDeadDef()
327 isOrigDef = SlotIndex::isSameInstr(OrigVNI->def, Idx); in eliminateDeadDef()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DGCNRegPressure.h29 class SlotIndex; variable
282 LaneBitmask getLastUsedLanes(Register RegUnit, SlotIndex Pos) const;
300 GCNRPTracker::LiveRegSet getLiveRegs(SlotIndex SI, const LiveIntervals &LIS,
313 void reset(const MachineRegisterInfo &MRI, SlotIndex SI) { in reset()
425 LaneBitmask getLiveLaneMask(unsigned Reg, SlotIndex SI,
430 LaneBitmask getLiveLaneMask(const LiveInterval &LI, SlotIndex SI,
434 GCNRPTracker::LiveRegSet getLiveRegs(SlotIndex SI, const LiveIntervals &LIS,
445 std::vector<SlotIndex> Indexes; in getLiveRegMap()
456 SmallVector<SlotIndex, 32> LiveIdxs, SRLiveIdxs; in getLiveRegMap()
H A DGCNRegPressure.cpp291 SlotIndex InstrSI; in collectVirtualRegUses()
310 bool TrackLaneMasks, Register RegUnit, SlotIndex Pos, in getLanesWithProperty()
312 function_ref<bool(const LiveRange &LR, SlotIndex Pos)> Property) { in getLanesWithProperty()
340 SlotIndex PriorUseIdx, SlotIndex NextUseIdx, in findUseBetween()
349 SlotIndex InstSlot = LIS->getInstructionIndex(*MI).getRegSlot(); in findUseBetween()
430 LaneBitmask llvm::getLiveLaneMask(unsigned Reg, SlotIndex SI, in getLiveLaneMask()
437 LaneBitmask llvm::getLiveLaneMask(const LiveInterval &LI, SlotIndex SI, in getLiveLaneMask()
454 GCNRPTracker::LiveRegSet llvm::getLiveRegs(SlotIndex SI, in getLiveRegs()
495 SlotIndex Pos) const { in getLastUsedLanes()
498 [](const LiveRange &LR, SlotIndex Pos) { in getLastUsedLanes()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/
H A DWebAssemblyRegColoring.cpp79 static DenseMap<Register, std::vector<std::pair<SlotIndex, MachineInstr *>>>
81 DenseMap<Register, std::vector<std::pair<SlotIndex, MachineInstr *>>> in buildVRegToDbgValueMap()
88 auto CloseNewDVRange = [&DbgVRegToValues, &ToInsert](SlotIndex Slot) { in buildVRegToDbgValueMap()
103 SlotIndex CurrentSlot = Slots->getMBBStartIdx(&MBB); in buildVRegToDbgValueMap()
133 DenseMap<Register, std::vector<std::pair<SlotIndex, MachineInstr *>>> in undefInvalidDbgValues() argument
150 SlotIndex LastSlot; in undefInvalidDbgValues()

123