Home
last modified time | relevance | path

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

123

/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DSlotIndexes.h65 class SlotIndex {
116 SlotIndex() = default;
121 SlotIndex(IndexListEntry *entry, unsigned slot) : lie(entry, slot) {} in SlotIndex() function
124 SlotIndex(const SlotIndex &li, Slot s) : lie(li.listEntry(), unsigned(s)) { in SlotIndex() function
144 bool operator==(SlotIndex other) const {
148 bool operator!=(SlotIndex other) const {
154 bool operator<(SlotIndex other) const {
159 bool operator<=(SlotIndex other) const {
165 bool operator>(SlotIndex other) const {
171 bool operator>=(SlotIndex other) const {
[all …]
H A DLiveInterval.h61 SlotIndex def;
64 VNInfo(unsigned i, SlotIndex d) : id(i), def(d) {} in VNInfo()
84 void markUnused() { def = SlotIndex(); } in markUnused()
93 const SlotIndex EndPoint;
97 LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint, in LiveQueryResult()
147 SlotIndex endPoint() const { in endPoint()
163 SlotIndex start; // Start point of the interval (inclusive)
164 SlotIndex end; // End point of the interval (exclusive)
170 Segment(SlotIndex S, SlotIndex E, VNInfo *V) in Segment()
176 bool contains(SlotIndex I) const { in contains()
[all …]
H A DLiveIntervals.h74 SmallVector<SlotIndex, 8> RegMaskSlots;
201 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices,
202 ArrayRef<SlotIndex> Undefs);
204 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices) { in extendToIndices()
215 void pruneValue(LiveRange &LR, SlotIndex Kill,
216 SmallVectorImpl<SlotIndex> *EndPoints);
222 LLVM_ATTRIBUTE_UNUSED void pruneValue(LiveInterval &, SlotIndex, in pruneValue() argument
223 SmallVectorImpl<SlotIndex> *) { in pruneValue() argument
237 SlotIndex getInstructionIndex(const MachineInstr &Instr) const { in getInstructionIndex()
242 MachineInstr *getInstructionFromIndex(SlotIndex index) const { in getInstructionFromIndex()
[all …]
H A DLiveRangeCalc.h112 SlotIndex Kill;
117 LiveInBlock(LiveRange &LR, MachineDomTreeNode *node, SlotIndex kill) in LiveInBlock()
129 bool isDefOnEntry(LiveRange &LR, ArrayRef<SlotIndex> Undefs,
149 bool findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB, SlotIndex Use,
150 unsigned PhysReg, ArrayRef<SlotIndex> Undefs);
207 void extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg,
208 ArrayRef<SlotIndex> Undefs);
244 SlotIndex Kill = SlotIndex()) {
263 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 DRegisterPressure.h69 SlotIndex TopIdx;
70 SlotIndex BottomIdx;
74 void openTop(SlotIndex NextTop);
76 void openBottom(SlotIndex PrevBottom);
192 const MachineRegisterInfo &MRI, SlotIndex Pos,
555 SlotIndex getCurrSlot() const;
565 LaneBitmask getLastUsedLanes(Register RegUnit, SlotIndex Pos) const;
566 LaneBitmask getLiveLanesAt(Register RegUnit, SlotIndex Pos) const;
567 LaneBitmask getLiveThroughAt(Register RegUnit, SlotIndex Pos) const;
H A DCalcSpillWeights.h40 return UseDefFreq / (Size + 25*SlotIndex::InstrDist); in normalizeSpillWeight()
96 float weightCalcHelper(LiveInterval &LI, SlotIndex *Start = nullptr,
97 SlotIndex *End = nullptr);
/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()
[all...]
H A DLiveIntervals.cpp185 for (SlotIndex Idx : RegMaskSlots) in print()
354 SlotIndex Begin = Indexes->getMBBStartIdx(&MBB); in computeLiveInRegUnits()
383 SlotIndex Def = VNI->def; in createSegmentsForValues()
414 SlotIndex Idx = WorkList.back().first; in extendSegmentsToUses()
418 SlotIndex BlockStart = Indexes->getMBBStartIdx(MBB); in extendSegmentsToUses()
432 SlotIndex Stop = Indexes->getMBBEndIdx(Pred); in extendSegmentsToUses()
448 SlotIndex Stop = Indexes->getMBBEndIdx(Pred); in extendSegmentsToUses()
459 SmallVector<SlotIndex,8> Undefs; in extendSegmentsToUses()
492 SlotIndex Idx = getInstructionIndex(UseMI).getRegSlot(); in shrinkToUses()
534 SlotIndex Def = VNI->def; in computeDeadValues()
[all …]
H A DMLRegallocEvictAdvisor.h
H A DMLRegAllocEvictAdvisor.h30 SlotIndex Begin;
31 SlotIndex End;
37 MLModelRunner *RegallocRunner, function_ref<int(SlotIndex)> GetOpcode,
38 function_ref<float(SlotIndex)> GetMBBFreq,
39 function_ref<MachineBasicBlock *(SlotIndex)> GetMBBReference,
42 const SlotIndex LastIndex);
44 void extractMBBFrequency(const SlotIndex CurrentIndex,
47 function_ref<float(SlotIndex)> GetMBBFreq,
H A DSplitKit.cpp66 SlotIndex
70 std::pair<SlotIndex, SlotIndex> &LIP = LastInsertPoint[Num]; in computeLastInsertPoint()
71 SlotIndex MBBEnd = LIS.getMBBEndIdx(&MBB); in computeLastInsertPoint()
126 if (SlotIndex::isSameInstr(VNI->def, LIP.second)) in computeLastInsertPoint()
134 if (!SlotIndex::isEarlierInstr(VNI->def, LIP.second) && VNI->def < MBBEnd) in computeLastInsertPoint()
145 SlotIndex LIP = getLastInsertPoint(CurLI, MBB); in getLastInsertPointIter()
187 UseSlots.erase(llvm::unique(UseSlots, SlotIndex::isSameInstr), in analyzeUses()
209 SmallVectorImpl<SlotIndex>::const_iterator UseI, UseE; in calcLiveBlockInfo()
219 SlotIndex Start, Stop; in calcLiveBlockInfo()
253 SlotIndex LastStop = LVI->end; in calcLiveBlockInfo()
[all …]
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.cpp94 PrevPos = SlotIndex(); in revalidate()
111 PrevPos = SlotIndex(); in reset()
133 SlotIndex Start, Stop; in update()
156 ArrayRef<SlotIndex> RegMaskSlots; in update()
160 BI->First = BI->Last = SlotIndex(); in update()
167 SlotIndex StartI = I.start(); in update()
180 SlotIndex StartI = I->start; in update()
190 SlotIndex Limit = BI->First.isValid() ? BI->First : Stop; in update()
222 SlotIndex StopI = I.stop(); in update()
239 SlotIndex StopI = I->end; in update()
[all …]
H A DLiveDebugVariables.cpp261 using LocMap = IntervalMap<SlotIndex, DbgVariableValue, 4>;
304 SmallSet<SlotIndex, 2> trimmedDefs;
307 void insertDebugValue(MachineBasicBlock *MBB, SlotIndex StartIdx,
308 SlotIndex StopIdx, DbgVariableValue DbgValue,
414 void addDef(SlotIndex Idx, ArrayRef<MachineOperand> LocMOs, bool IsIndirect, in addDef()
445 extendDef(SlotIndex Idx, DbgVariableValue DbgValue,
448 std::optional<std::pair<SlotIndex, SmallVector<unsigned>>> &Kills,
463 SlotIndex KilledAt,
464 SmallVectorImpl<std::pair<SlotIndex, DbgVariableValue>> &NewDefs,
503 SlotIndex loc; ///< Slot used by the debug label.
[all …]
H A DLiveRangeCalc.cpp39 static VNInfo UndefVNI(0xbad, SlotIndex());
69 SlotIndex Start, End; in updateFromLiveIns()
87 void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg, in extend()
88 ArrayRef<SlotIndex> Undefs) { in extend()
89 assert(Use.isValid() && "Invalid SlotIndex"); in extend()
122 bool LiveRangeCalc::isDefOnEntry(LiveRange &LR, ArrayRef<SlotIndex> Undefs, in isDefOnEntry()
153 SlotIndex Begin, End; in isDefOnEntry()
192 SlotIndex Use, unsigned PhysReg, in findReachingDefs()
193 ArrayRef<SlotIndex> Undefs) { in findReachingDefs()
247 SlotIndex Star in findReachingDefs()
[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 NewEn
[all...]
H A DRegisterPressure.cpp178 TopIdx = BottomIdx = SlotIndex(); in reset()
194 void IntervalPressure::openTop(SlotIndex NextTop) { in openTop()
197 TopIdx = SlotIndex(); in openTop()
210 void IntervalPressure::openBottom(SlotIndex PrevBottom) { in openBottom()
213 BottomIdx = SlotIndex(); in openBottom()
310 SlotIndex RegPressureTracker::getCurrSlot() const { in getCurrSlot()
422 bool TrackLaneMasks, Register RegUnit, SlotIndex Pos, in getLanesWithProperty()
424 bool (*Property)(const LiveRange &LR, SlotIndex Pos)) { in getLanesWithProperty()
452 SlotIndex Pos) { in getLiveLanesAt()
455 [](const LiveRange &LR, SlotIndex Pos) { in getLiveLanesAt()
[all …]
H A DRegisterCoalescer.cpp138 SlotIndex SI; ///< Slot where this PHI occurs.
153 using DbgValueLoc = std::pair<SlotIndex, MachineInstr*>;
318 void addUndefFlag(const LiveInterval &Int, SlotIndex UseIdx,
624 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in adjustCopiesBackFrom()
652 SlotIndex CopyUseIdx = CopyIdx.getRegSlot(true); in adjustCopiesBackFrom()
685 SlotIndex FillerStart = ValS->end, FillerEnd = BS->start; in adjustCopiesBackFrom()
705 if (SS != S.end() && SlotIndex::isSameInstr(SS->start, SS->end)) { in adjustCopiesBackFrom()
711 SlotIndex BBStart = in adjustCopiesBackFrom()
836 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in removeCopyByCommutingDef()
886 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.cpp189 SlotIndex Pos = LIS->getInstructionIndex(*MO.getParent()); in findComponents()
223 SlotIndex Pos = LIS->getInstructionIndex(*MI); in rewriteOperands()
291 static bool subRangeLiveAt(const LiveInterval &LI, SlotIndex Pos) { in subRangeLiveAt()
323 SlotIndex Def = VNI.def; in computeMainRangesFixFlags()
326 SlotIndex PredEnd = Indexes.getMBBEndIdx(PredMBB); in computeMainRangesFixFlags()
335 SlotIndex DefIdx = LIS->InsertMachineInstrInMaps(*ImpDef); in computeMainRangesFixFlags()
336 SlotIndex RegDefIdx = DefIdx.getRegSlot(); in computeMainRangesFixFlags()
362 SlotIndex Pos = LIS->getInstructionIndex(*MO.getParent()); in computeMainRangesFixFlags()
367 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, bool cheapAsAMove) { in canRematerializeAt()
167 SlotIndex DefIdx; in canRematerializeAt()
182 SlotIndex LiveRangeEdit::rematerializeAt(MachineBasicBlock &MBB, in rematerializeAt()
269 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot(); in useIsKill()
285 SlotIndex Idx = LIS.getInstructionIndex(*MI).getRegSlot(); in eliminateDeadDef()
331 isOrigDef = SlotIndex::isSameInstr(OrigVNI->def, Idx); in eliminateDeadDef()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DGCNRegPressure.h28 class SlotIndex; variable
176 GCNRPTracker::LiveRegSet getLiveRegs(SlotIndex SI, const LiveIntervals &LIS,
187 void reset(const MachineRegisterInfo &MRI, SlotIndex SI) { in reset()
263 SlotIndex SI,
267 LaneBitmask getLiveLaneMask(const LiveInterval &LI, SlotIndex SI,
270 GCNRPTracker::LiveRegSet getLiveRegs(SlotIndex SI, const LiveIntervals &LIS,
281 std::vector<SlotIndex> Indexes; in getLiveRegMap()
292 SmallVector<SlotIndex, 32> LiveIdxs, SRLiveIdxs; in getLiveRegMap()
H A DSIOptimizeExecMaskingPreRA.cpp83 static bool isDefBetween(const LiveRange &LR, SlotIndex AndIdx, in isDefBetween()
84 SlotIndex SelIdx) { in isDefBetween()
93 SlotIndex AndIdx = LIS->getInstructionIndex(And).getRegSlot(); in isDefBetween()
94 SlotIndex SelIdx = LIS->getInstructionIndex(Sel).getRegSlot(); in isDefBetween()
189 SlotIndex SelIdx = LIS->getInstructionIndex(*Sel); in optimizeVcndVcmpPair()
212 SlotIndex AndIdx = LIS->ReplaceMachineInstrInMaps(*And, *Andn2); in optimizeVcndVcmpPair()
219 SlotIndex CmpIdx = LIS->getInstructionIndex(*Cmp); in optimizeVcndVcmpPair()
321 SlotIndex StartIdx = LIS->getInstructionIndex(SaveExecMI); in optimizeElseBranch()
322 SlotIndex EndIdx = LIS->getInstructionIndex(*AndExecMI); in optimizeElseBranch()
/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