Home
last modified time | relevance | path

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

123

/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DSlotIndexes.h68 class SlotIndex {
179 static bool isSameInstr(SlotIndex A, SlotIndex B) {
185 static bool isEarlierInstr(SlotIndex A, SlotIndex B) {
191 static bool isEarlierEqualInstr(SlotIndex A, SlotIndex B) {
314 SmallVector<std::pair<SlotIndex, SlotIndex>, 8> MBBRanges;
395 SlotIndex getNextNonNullIndex(SlotIndex Index) {
440 const std::pair<SlotIndex, SlotIndex> &
446 const std::pair<SlotIndex, SlotIndex> &
558 SlotIndex newIndex(&*newItr, SlotIndex::Slot_Block);
613 SlotIndex startIdx(startEntry, SlotIndex::Slot_Block);
[all …]
H A DLiveInterval.h61 SlotIndex def;
170 Segment(SlotIndex S, SlotIndex E, VNInfo *V) in Segment()
181 bool containsInterval(SlotIndex S, SlotIndex E) const { in containsInterval()
464 bool overlaps(SlotIndex Start, SlotIndex End) const;
497 SlotIndex StartIdx, SlotIndex Kill);
504 VNInfo *extendInBlock(SlotIndex StartIdx, SlotIndex Kill);
518 bool isLocal(SlotIndex Start, SlotIndex End) const { in isLocal()
526 void removeSegment(SlotIndex Start, SlotIndex End,
608 bool isUndefIn(ArrayRef<SlotIndex> Undefs, SlotIndex Begin, in isUndefIn()
937 SlotIndex LastStart;
[all …]
H A DLiveIntervals.h70 SmallVector<SlotIndex, 8> RegMaskSlots;
190 ArrayRef<SlotIndex> Undefs);
203 void pruneValue(LiveRange &LR, SlotIndex Kill,
204 SmallVectorImpl<SlotIndex> *EndPoints);
232 MachineInstr* getInstructionFromIndex(SlotIndex index) const { in getInstructionFromIndex()
237 SlotIndex getMBBStartIdx(const MachineBasicBlock *mbb) const { in getMBBStartIdx()
242 SlotIndex getMBBEndIdx(const MachineBasicBlock *mbb) const { in getMBBEndIdx()
256 MachineBasicBlock* getMBBFromIndex(SlotIndex index) const { in getMBBFromIndex()
267 SlotIndex InsertMachineInstrInMaps(MachineInstr &MI) { in InsertMachineInstrInMaps()
434 void removePhysRegDefAt(MCRegister Reg, SlotIndex Pos);
[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);
H A DLiveRangeEdit.h198 bool allUsesAvailableAt(const MachineInstr *OrigMI, SlotIndex OrigIdx,
199 SlotIndex UseIdx) const;
204 bool canRematerializeAt(Remat &RM, VNInfo *OrigVNI, SlotIndex UseIdx,
212 SlotIndex rematerializeAt(MachineBasicBlock &MBB,
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DSplitKit.h58 SmallVector<std::pair<SlotIndex, SlotIndex>, 8> LastInsertPoint;
83 SlotIndex Res = LIS.getMBBStartIdx(&MBB); in getFirstInsertPoint()
147 SmallVector<SlotIndex, 8> UseSlots;
235 SlotIndex getLastSplitPoint(unsigned Num) { in getLastSplitPoint()
247 SlotIndex getFirstSplitPoint(unsigned Num) { in getFirstSplitPoint()
467 SlotIndex enterIntvBefore(SlotIndex Idx);
471 SlotIndex enterIntvAfter(SlotIndex Idx);
482 void useIntv(SlotIndex Start, SlotIndex End);
486 SlotIndex leaveIntvAfter(SlotIndex Idx);
490 SlotIndex leaveIntvBefore(SlotIndex Idx);
[all …]
H A DLiveIntervals.cpp358 SlotIndex Def = VNI->def; in createSegmentsForValues()
509 SlotIndex Def = VNI->def; in computeDeadValues()
553 SlotIndex LastIdx; in shrinkToUses()
620 for (SlotIndex Idx : Indices) in extendToIndices()
904 ArrayRef<SlotIndex> Slots; in checkRegMaskInterference()
972 SlotIndex OldIdx;
973 SlotIndex NewIdx;
980 SlotIndex OldIdx, SlotIndex NewIdx, bool UpdateFlags) in HMEditor()
1443 SlotIndex findLastUseBefore(SlotIndex Before, Register Reg, in findLastUseBefore()
1559 SlotIndex lastUseIdx; in repairOldRegInRange()
[all …]
H A DMLRegAllocEvictAdvisor.h29 SlotIndex Begin;
30 SlotIndex End;
36 MLModelRunner *RegallocRunner, function_ref<int(SlotIndex)> GetOpcode,
37 function_ref<float(SlotIndex)> GetMBBFreq,
38 function_ref<MachineBasicBlock *(SlotIndex)> GetMBBReference,
41 const SlotIndex LastIndex);
43 void extractMBBFrequency(const SlotIndex CurrentIndex,
46 function_ref<float(SlotIndex)> GetMBBFreq,
H A DSlotIndexes.cpp83 SlotIndex blockStartIndex(&indexList.back(), SlotIndex::Slot_Block); in runOnMachineFunction()
94 &MI, SlotIndex(&indexList.back(), SlotIndex::Slot_Block))); in runOnMachineFunction()
101 MBBRanges[MBB.getNumber()].second = SlotIndex(&indexList.back(), in runOnMachineFunction()
123 SlotIndex MIIndex = mi2iItr->second; in removeMachineInstrFromMaps()
136 SlotIndex MIIndex = mi2iItr->second; in removeSingleMachineInstrFromMaps()
162 const unsigned Space = SlotIndex::InstrDist/2; in renumberIndexes()
183 SlotIndex startIdx; in repairIndexesInRange()
189 SlotIndex endIdx; in repairIndexesInRange()
242 Entry.setIndex(Index * SlotIndex::InstrDist); in packIndexes()
264 void SlotIndex::print(raw_ostream &os) const { in print()
[all …]
H A DSplitKit.cpp66 SlotIndex
70 std::pair<SlotIndex, SlotIndex> &LIP = LastInsertPoint[Num]; in computeLastInsertPoint()
576 SlotIndex Def; in buildCopy()
596 SlotIndex Def; in defFromParent()
665 SlotIndex SplitEditor::enterIntvBefore(SlotIndex Idx) { in enterIntvBefore()
682 SlotIndex SplitEditor::enterIntvAfter(SlotIndex Idx) { in enterIntvAfter()
741 void SplitEditor::useIntv(SlotIndex Start, SlotIndex End) { in useIntv()
748 SlotIndex SplitEditor::leaveIntvAfter(SlotIndex Idx) { in leaveIntvAfter()
779 SlotIndex SplitEditor::leaveIntvBefore(SlotIndex Idx) { in leaveIntvBefore()
825 void SplitEditor::overlapIntv(SlotIndex Start, SlotIndex End) { in overlapIntv()
[all …]
H A DLiveDebugVariables.cpp304 SmallSet<SlotIndex, 2> trimmedDefs;
463 SlotIndex KilledAt,
933 SlotIndex Idx = in collectDebugValues()
966 SlotIndex Start = Idx; in extendDef()
1017 SlotIndex KilledAt, in addDefsFromCopies()
1115 SlotIndex Idx = Defs[i].first; in computeIntervals()
1189 SlotIndex PrevEnd; in computeIntervals()
1208 SlotIndex IStop = I.stop(); in computeIntervals()
1751 SlotIndex Start = I.start(); in emitDebugValues()
1752 SlotIndex Stop = I.stop(); in emitDebugValues()
[all …]
H A DInterferenceCache.cpp94 PrevPos = SlotIndex(); in revalidate()
111 PrevPos = SlotIndex(); in reset()
133 SlotIndex Start, Stop; in update()
158 ArrayRef<SlotIndex> RegMaskSlots; in update()
162 BI->First = BI->Last = SlotIndex(); in update()
169 SlotIndex StartI = I.start(); in update()
182 SlotIndex StartI = I->start; in update()
192 SlotIndex Limit = BI->First.isValid() ? BI->First : Stop; in update()
224 SlotIndex StopI = I.stop(); in update()
241 SlotIndex StopI = I->end; in update()
[all …]
H A DLiveInterval.cpp120 VNInfo *extendInBlock(SlotIndex StartIdx, SlotIndex Use) { in extendInBlock()
136 SlotIndex StartIdx, SlotIndex Use) { in extendInBlock()
139 SlotIndex BeforeUse = Use.getPrevSlot(); in extendInBlock()
220 SlotIndex Start = S.start, End = S.end; in addSegment()
325 iterator find(SlotIndex Pos) { in find()
473 bool LiveRange::overlaps(SlotIndex Start, SlotIndex End) const { in overlaps()
550 SlotIndex StartIdx, SlotIndex Kill) { in extendInBlock()
558 VNInfo *LiveRange::extendInBlock(SlotIndex StartIdx, SlotIndex Kill) { in extendInBlock()
566 void LiveRange::removeSegment(SlotIndex Start, SlotIndex End, in removeSegment()
599 SlotIndex OldEnd = I->end; in removeSegment()
[all …]
H A DLiveRangeCalc.cpp39 static VNInfo UndefVNI(0xbad, SlotIndex());
69 SlotIndex Start, End; in updateFromLiveIns()
88 ArrayRef<SlotIndex> Undefs) { in extend()
153 SlotIndex Begin, End; in isDefOnEntry()
193 ArrayRef<SlotIndex> Undefs) { in findReachingDefs()
247 SlotIndex Start, End; in findReachingDefs()
269 Use = SlotIndex(); in findReachingDefs()
288 SlotIndex Start, End; in findReachingDefs()
401 SlotIndex Start, End; in updateSSA()
438 ArrayRef<SlotIndex> Defs, in isJointlyDominated()
[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 DRegisterPressure.cpp178 TopIdx = BottomIdx = SlotIndex(); in reset()
197 TopIdx = SlotIndex(); in openTop()
213 BottomIdx = SlotIndex(); in openBottom()
796 SlotIndex SlotIdx; in recede()
862 SlotIndex SlotIdx; in recedeSkipDebugValues()
900 SlotIndex SlotIdx; in advance()
950 SlotIndex SlotIdx = getCurrSlot(); in advance()
1043 SlotIndex SlotIdx; in bumpUpwardPressure()
1222 SlotIndex PriorUseIdx, SlotIndex NextUseIdx, in findUseBetween()
1284 SlotIndex SlotIdx; in bumpDownwardPressure()
[all …]
H A DRegisterCoalescer.cpp711 SlotIndex BBStart = in adjustCopiesBackFrom()
1190 SlotIndex NewCopyIdx = in removePartialRedundancy()
1520 SlotIndex DefIndex = in reMaterializeTrivialDef()
1548 SlotIndex DefIndex = in reMaterializeTrivialDef()
2668 SlotIndex Def = VNI->def; in followCopyChain()
3083 SlotIndex End = OtherI->end; in taintExtent()
3328 SlotIndex OtherDef; in pruneSubRegValues()
3426 SlotIndex Def = VNI->def; in eraseInstrs()
3443 SlotIndex NewEnd; in eraseInstrs()
3463 SlotIndex ED, LE; in eraseInstrs()
[all …]
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()
355 SlotIndex Pos = LIS->getInstructionIndex(*MO.getParent()); in computeMainRangesFixFlags()
360 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
164 GCNRPTracker::LiveRegSet getLiveRegs(SlotIndex SI, const LiveIntervals &LIS,
175 void reset(const MachineRegisterInfo &MRI, SlotIndex SI) { in reset()
251 SlotIndex SI,
255 LaneBitmask getLiveLaneMask(const LiveInterval &LI, SlotIndex SI,
258 GCNRPTracker::LiveRegSet getLiveRegs(SlotIndex SI, const LiveIntervals &LIS,
269 std::vector<SlotIndex> Indexes; in getLiveRegMap()
280 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
151 SlotIndex LastSlot; in undefInvalidDbgValues()

123