Home
last modified time | relevance | path

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

123

/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/CodeGen/
DSlotIndexes.h83 class SlotIndex {
112 SlotIndex(IndexListEntry *entry, unsigned slot)
141 SlotIndex() = default;
144 SlotIndex(const SlotIndex &li, Slot s) : lie(li.listEntry(), unsigned(s)) {
165 bool operator==(SlotIndex other) const {
169 bool operator!=(SlotIndex other) const {
175 bool operator<(SlotIndex other) const {
180 bool operator<=(SlotIndex other) const {
186 bool operator>(SlotIndex other) const {
192 bool operator>=(SlotIndex other) const {
[all …]
DLiveInterval.h60 SlotIndex def;
63 VNInfo(unsigned i, SlotIndex d) : id(i), def(d) {} in VNInfo()
83 void markUnused() { def = SlotIndex(); } in markUnused()
92 const SlotIndex EndPoint;
96 LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint, in LiveQueryResult()
146 SlotIndex endPoint() const { in endPoint()
162 SlotIndex start; // Start point of the interval (inclusive)
163 SlotIndex end; // End point of the interval (exclusive)
169 Segment(SlotIndex S, SlotIndex E, VNInfo *V) in Segment()
175 bool contains(SlotIndex I) const { in contains()
[all …]
DLiveIntervals.h72 SmallVector<SlotIndex, 8> RegMaskSlots;
184 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices,
185 ArrayRef<SlotIndex> Undefs);
187 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices) { in extendToIndices()
198 void pruneValue(LiveRange &LR, SlotIndex Kill,
199 SmallVectorImpl<SlotIndex> *EndPoints);
205 LLVM_ATTRIBUTE_UNUSED void pruneValue(LiveInterval &, SlotIndex, in pruneValue() argument
206 SmallVectorImpl<SlotIndex> *) { in pruneValue() argument
226 SlotIndex getInstructionIndex(const MachineInstr &Instr) const { in getInstructionIndex()
231 MachineInstr* getInstructionFromIndex(SlotIndex index) const { in getInstructionFromIndex()
[all …]
DLiveRangeCalc.h111 SlotIndex Kill;
116 LiveInBlock(LiveRange &LR, MachineDomTreeNode *node, SlotIndex kill) in LiveInBlock()
128 bool isDefOnEntry(LiveRange &LR, ArrayRef<SlotIndex> Undefs,
148 bool findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB, SlotIndex Use,
149 unsigned PhysReg, ArrayRef<SlotIndex> Undefs);
210 void extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg,
211 ArrayRef<SlotIndex> Undefs);
270 SlotIndex Kill = SlotIndex()) {
289 ArrayRef<SlotIndex> Defs,
DCalcSpillWeights.h41 return UseDefFreq / (Size + 25*SlotIndex::InstrDist); in normalizeSpillWeight()
78 float futureWeight(LiveInterval &li, SlotIndex start, SlotIndex end);
92 float weightCalcHelper(LiveInterval &li, SlotIndex *start = nullptr,
93 SlotIndex *end = nullptr);
DLiveIntervalUnion.h46 using LiveSegments = IntervalMap<SlotIndex, 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()
DRegisterPressure.h70 SlotIndex TopIdx;
71 SlotIndex BottomIdx;
75 void openTop(SlotIndex NextTop);
77 void openBottom(SlotIndex PrevBottom);
193 const MachineRegisterInfo &MRI, SlotIndex Pos,
549 SlotIndex getCurrSlot() const;
564 LaneBitmask getLastUsedLanes(unsigned RegUnit, SlotIndex Pos) const;
565 LaneBitmask getLiveLanesAt(unsigned RegUnit, SlotIndex Pos) const;
566 LaneBitmask getLiveThroughAt(unsigned RegUnit, SlotIndex Pos) const;
DLiveRangeEdit.h101 bool allUsesAvailableAt(const MachineInstr *OrigMI, SlotIndex OrigIdx,
102 SlotIndex UseIdx) const;
212 bool canRematerializeAt(Remat &RM, VNInfo *OrigVNI, SlotIndex UseIdx,
219 SlotIndex rematerializeAt(MachineBasicBlock &MBB,
DLiveRegMatrix.h114 bool checkInterference(SlotIndex Start, SlotIndex End, unsigned PhysReg);
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/
DSplitKit.h57 SmallVector<std::pair<SlotIndex, SlotIndex>, 8> LastInsertPoint;
59 SlotIndex computeLastInsertPoint(const LiveInterval &CurLI,
66 SlotIndex getLastInsertPoint(const LiveInterval &CurLI, in getLastInsertPoint()
81 SlotIndex getFirstInsertPoint(MachineBasicBlock &MBB) { in getFirstInsertPoint()
82 SlotIndex Res = LIS.getMBBStartIdx(&MBB); in getFirstInsertPoint()
122 SlotIndex FirstInstr; ///< First instr accessing current reg.
123 SlotIndex LastInstr; ///< Last instr accessing current reg.
124 SlotIndex FirstDef; ///< First non-phi valno->def, or SlotIndex().
131 return SlotIndex::isSameInstr(FirstInstr, LastInstr); in isOneInstr()
143 SmallVector<SlotIndex, 8> UseSlots;
[all …]
DLiveIntervals.cpp170 for (SlotIndex Idx : RegMaskSlots) in print()
330 SlotIndex Begin = Indexes->getMBBStartIdx(&MBB); in computeLiveInRegUnits()
360 SlotIndex Def = VNI->def; in createSegmentsForValues()
391 SlotIndex Idx = WorkList.back().first; in extendSegmentsToUses()
395 SlotIndex BlockStart = Indexes->getMBBStartIdx(MBB); in extendSegmentsToUses()
409 SlotIndex Stop = Indexes->getMBBEndIdx(Pred); in extendSegmentsToUses()
425 SlotIndex Stop = Indexes->getMBBEndIdx(Pred); in extendSegmentsToUses()
436 SmallVector<SlotIndex,8> Undefs; in extendSegmentsToUses()
470 SlotIndex Idx = getInstructionIndex(UseMI).getRegSlot(); in shrinkToUses()
513 SlotIndex Def = VNI->def; in computeDeadValues()
[all …]
DSplitKit.cpp75 SlotIndex
79 std::pair<SlotIndex, SlotIndex> &LIP = LastInsertPoint[Num]; in computeLastInsertPoint()
80 SlotIndex MBBEnd = LIS.getMBBEndIdx(&MBB); in computeLastInsertPoint()
130 if (!SlotIndex::isEarlierInstr(VNI->def, LIP.second) && VNI->def < MBBEnd) in computeLastInsertPoint()
141 SlotIndex LIP = getLastInsertPoint(CurLI, MBB); in getLastInsertPointIter()
185 SlotIndex::isSameInstr), in analyzeUses()
220 SmallVectorImpl<SlotIndex>::const_iterator UseI, UseE; in calcLiveBlockInfo()
230 SlotIndex Start, Stop; in calcLiveBlockInfo()
265 SlotIndex LastStop = LVI->end; in calcLiveBlockInfo()
327 SlotIndex Stop = LIS.getMBBEndIdx(&*MFI); in countLiveBlocks()
[all …]
DSlotIndexes.cpp83 SlotIndex blockStartIndex(&indexList.back(), SlotIndex::Slot_Block); in runOnMachineFunction()
90 indexList.push_back(createEntry(&MI, index += SlotIndex::InstrDist)); in runOnMachineFunction()
94 &MI, SlotIndex(&indexList.back(), SlotIndex::Slot_Block))); in runOnMachineFunction()
98 indexList.push_back(createEntry(nullptr, index += SlotIndex::InstrDist)); in runOnMachineFunction()
101 MBBRanges[MBB.getNumber()].second = SlotIndex(&indexList.back(), in runOnMachineFunction()
102 SlotIndex::Slot_Block); in runOnMachineFunction()
122 SlotIndex MIIndex = mi2iItr->second; in removeMachineInstrFromMaps()
135 SlotIndex MIIndex = mi2iItr->second; in removeSingleMachineInstrFromMaps()
161 const unsigned Space = SlotIndex::InstrDist/2; in renumberIndexes()
191 SlotIndex startIdx; in repairIndexesInRange()
[all …]
DLiveDebugVariables.cpp138 using LocMap = IntervalMap<SlotIndex, DbgValueLocation, 4>;
173 SmallSet<SlotIndex, 2> trimmedDefs;
176 void insertDebugValue(MachineBasicBlock *MBB, SlotIndex StartIdx,
177 SlotIndex StopIdx, DbgValueLocation Loc, bool Spilled,
288 void addDef(SlotIndex Idx, const MachineOperand &LocMO, bool IsIndirect) { in addDef()
313 void extendDef(SlotIndex Idx, DbgValueLocation Loc,
315 SmallVectorImpl<SlotIndex> *Kills,
329 const SmallVectorImpl<SlotIndex> &Kills,
330 SmallVectorImpl<std::pair<SlotIndex, DbgValueLocation>> &NewDefs,
368 SlotIndex loc; ///< Slot used by the debug label.
[all …]
DInterferenceCache.cpp98 PrevPos = SlotIndex(); in revalidate()
115 PrevPos = SlotIndex(); in reset()
136 SlotIndex Start, Stop; in update()
161 ArrayRef<SlotIndex> RegMaskSlots; in update()
165 BI->First = BI->Last = SlotIndex(); in update()
172 SlotIndex StartI = I.start(); in update()
185 SlotIndex StartI = I->start; in update()
195 SlotIndex Limit = BI->First.isValid() ? BI->First : Stop; in update()
227 SlotIndex StopI = I.stop(); in update()
244 SlotIndex StopI = I->end; in update()
[all …]
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 …]
DLiveRangeCalc.cpp41 static VNInfo UndefVNI(0xbad, SlotIndex());
67 SlotIndex DefIdx = in createDeadDef()
158 SmallVector<SlotIndex, 4> Undefs; in extendToUses()
190 SlotIndex UseIdx; in extendToUses()
223 SlotIndex Start, End; in updateFromLiveIns()
241 void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg, in extend()
242 ArrayRef<SlotIndex> Undefs) { in extend()
276 bool LiveRangeCalc::isDefOnEntry(LiveRange &LR, ArrayRef<SlotIndex> Undefs, in isDefOnEntry()
307 SlotIndex Begin, End; in isDefOnEntry()
347 SlotIndex Use, unsigned PhysReg, in findReachingDefs()
[all …]
DInterferenceCache.h37 SlotIndex First;
38 SlotIndex Last;
66 SlotIndex PrevPos;
232 SlotIndex first() { in first()
238 SlotIndex last() { in last()
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()
423 SlotIndex Pos, LaneBitmask SafeDefault, 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 …]
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()
DRegisterCoalescer.cpp139 using DbgValueLoc = std::pair<SlotIndex, MachineInstr*>;
297 void addUndefFlag(const LiveInterval &Int, SlotIndex UseIdx,
593 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in adjustCopiesBackFrom()
621 SlotIndex CopyUseIdx = CopyIdx.getRegSlot(true); in adjustCopiesBackFrom()
654 SlotIndex FillerStart = ValS->end, FillerEnd = BS->start; in adjustCopiesBackFrom()
674 if (SS != S.end() && SlotIndex::isSameInstr(SS->start, SS->end)) { in adjustCopiesBackFrom()
798 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in removeCopyByCommutingDef()
848 SlotIndex UseIdx = LIS->getInstructionIndex(*UseMI); in removeCopyByCommutingDef()
902 SlotIndex UseIdx = LIS->getInstructionIndex(*UseMI).getRegSlot(true); in removeCopyByCommutingDef()
923 SlotIndex DefIdx = UseIdx.getRegSlot(); in removeCopyByCommutingDef()
[all …]
DLiveRangeEdit.cpp107 SlotIndex OrigIdx, in allUsesAvailableAt()
108 SlotIndex UseIdx) const { in allUsesAvailableAt()
131 if (SlotIndex::isSameInstr(OrigIdx, UseIdx)) in allUsesAvailableAt()
141 SlotIndex UseIdx, bool cheapAsAMove) { in canRematerializeAt()
149 SlotIndex DefIdx; in canRematerializeAt()
164 SlotIndex LiveRangeEdit::rematerializeAt(MachineBasicBlock &MBB, in rematerializeAt()
246 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot(); in useIsKill()
263 SlotIndex Idx = LIS.getInstructionIndex(*MI).getRegSlot(); in eliminateDeadDef()
303 isOrigDef = SlotIndex::isSameInstr(OrigVNI->def, Idx); in eliminateDeadDef()
DCalcSpillWeights.cpp146 float VirtRegAuxInfo::futureWeight(LiveInterval &li, SlotIndex start, in futureWeight()
147 SlotIndex end) { in futureWeight()
151 float VirtRegAuxInfo::weightCalcHelper(LiveInterval &li, SlotIndex *start, in weightCalcHelper()
152 SlotIndex *end) { in weightCalcHelper()
213 SlotIndex si = LIS.getInstructionIndex(*mi); in weightCalcHelper()
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/AMDGPU/
DGCNRegPressure.h188 SlotIndex SI,
192 GCNRPTracker::LiveRegSet getLiveRegs(SlotIndex SI,
204 std::vector<SlotIndex> Indexes; in getLiveRegMap()
215 SmallVector<SlotIndex, 32> LiveIdxs, SRLiveIdxs; in getLiveRegMap()
264 void printLivesAt(SlotIndex SI,
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/WebAssembly/
DWebAssemblyMemIntrinsicResults.cpp94 SlotIndex FromIdx = LIS.getInstructionIndex(MI).getRegSlot(); in replaceDominatedUses()
97 SmallVector<SlotIndex, 4> Indices; in replaceDominatedUses()
109 SlotIndex WhereIdx = LIS.getInstructionIndex(*Where); in replaceDominatedUses()

123