/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | SlotIndexes.h | 68 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 D | LiveInterval.h | 61 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 D | LiveIntervals.h | 70 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 D | LiveRangeCalc.h | 112 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 D | LiveIntervalUnion.h | 46 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 D | RegisterPressure.h | 69 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 D | CalcSpillWeights.h | 40 return UseDefFreq / (Size + 25*SlotIndex::InstrDist); in normalizeSpillWeight() 96 float weightCalcHelper(LiveInterval &LI, SlotIndex *Start = nullptr, 97 SlotIndex *End = nullptr);
|
H A D | LiveRangeEdit.h | 198 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 D | SplitKit.h | 58 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 D | LiveIntervals.cpp | 358 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 D | MLRegAllocEvictAdvisor.h | 29 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 D | SlotIndexes.cpp | 83 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 D | SplitKit.cpp | 66 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 D | LiveDebugVariables.cpp | 304 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 D | InterferenceCache.cpp | 94 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 D | LiveInterval.cpp | 120 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 D | LiveRangeCalc.cpp | 39 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 D | InterferenceCache.h | 37 SlotIndex First; 38 SlotIndex Last; 66 SlotIndex PrevPos; 229 SlotIndex first() { in first() 235 SlotIndex last() { in last()
|
H A D | RegisterPressure.cpp | 178 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 D | RegisterCoalescer.cpp | 711 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 D | RenameIndependentSubregs.cpp | 189 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 D | LiveRangeEdit.cpp | 107 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 D | GCNRegPressure.h | 28 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 D | SIOptimizeExecMaskingPreRA.cpp | 83 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 D | WebAssemblyRegColoring.cpp | 79 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()
|