Searched refs:SlotIndex (Results 1 - 25 of 30) sorted by relevance

12

/external/llvm/lib/CodeGen/
H A DSplitKit.h69 SlotIndex FirstInstr; ///< First instr accessing current reg.
70 SlotIndex LastInstr; ///< Last instr accessing current reg.
71 SlotIndex FirstDef; ///< First non-phi valno->def, or SlotIndex().
78 return SlotIndex::isSameInstr(FirstInstr, LastInstr);
87 SmallVector<SlotIndex, 8> UseSlots;
93 SmallVector<std::pair<SlotIndex, SlotIndex>, 8> LastSplitPoint;
111 SlotIndex computeLastSplitPoint(unsigned Num);
141 SlotIndex getLastSplitPoin
[all...]
H A DLiveRangeCalc.h86 // Position in block where the live-in range ends, or SlotIndex() if the
89 SlotIndex Kill;
94 LiveInBlock(LiveInterval *li, MachineDomTreeNode *node, SlotIndex kill)
116 SlotIndex Kill,
168 void extend(LiveInterval *LI, SlotIndex Kill, unsigned PhysReg = 0);
226 SlotIndex Kill = SlotIndex()) {
224 addLiveInBlock(LiveInterval *LI, MachineDomTreeNode *DomNode, SlotIndex Kill = SlotIndex()) argument
H A DSlotIndexes.cpp77 SlotIndex blockStartIndex(&indexList.back(), SlotIndex::Slot_Block);
86 indexList.push_back(createEntry(mi, index += SlotIndex::InstrDist));
89 mi2iMap.insert(std::make_pair(mi, SlotIndex(&indexList.back(),
90 SlotIndex::Slot_Block)));
94 indexList.push_back(createEntry(0, index += SlotIndex::InstrDist));
97 MBBRanges[mbb->getNumber()].second = SlotIndex(&indexList.back(),
98 SlotIndex::Slot_Block);
121 index += SlotIndex::InstrDist;
129 const unsigned Space = SlotIndex
[all...]
H A DInterferenceCache.h34 SlotIndex First;
35 SlotIndex Last;
54 /// Indexes - Mapping block numbers to SlotIndex ranges.
61 SlotIndex PrevPos;
212 SlotIndex first() {
218 SlotIndex last() {
H A DLiveIntervalAnalysis.cpp288 SlotIndex Begin = Indexes->getMBBStartIdx(MBB);
323 SmallVector<std::pair<SlotIndex, VNInfo*>, 16> WorkList;
333 SlotIndex Idx = getInstructionIndex(UseMI).getRegSlot();
368 SlotIndex Idx = WorkList.back().first;
372 SlotIndex BlockStart = getMBBStartIdx(MBB);
386 SlotIndex Stop = getMBBEndIdx(*PI);
403 SlotIndex Stop = getMBBEndIdx(*PI);
446 ArrayRef<SlotIndex> Indices) {
453 void LiveIntervals::pruneValue(LiveInterval *LI, SlotIndex Kill,
454 SmallVectorImpl<SlotIndex> *EndPoint
[all...]
H A DSplitKit.cpp61 SlotIndex SplitAnalysis::computeLastSplitPoint(unsigned Num) {
64 std::pair<SlotIndex, SlotIndex> &LSP = LastSplitPoint[Num];
65 SlotIndex MBBEnd = LIS.getMBBEndIdx(MBB);
105 if (!SlotIndex::isEarlierInstr(VNI->def, LSP.second) && VNI->def < MBBEnd)
115 SlotIndex LSP = getLastSplitPoint(MBB->getNumber());
145 SlotIndex::isSameInstr),
181 SmallVectorImpl<SlotIndex>::const_iterator UseI, UseE;
190 SlotIndex Start, Stop;
225 SlotIndex LastSto
[all...]
H A DInterferenceCache.cpp69 PrevPos = SlotIndex();
86 PrevPos = SlotIndex();
107 SlotIndex Start, Stop;
131 ArrayRef<SlotIndex> RegMaskSlots;
135 BI->First = BI->Last = SlotIndex();
142 SlotIndex StartI = I.start();
155 SlotIndex StartI = I->start;
165 SlotIndex Limit = BI->First.isValid() ? BI->First : Stop;
197 SlotIndex StopI = I.stop();
214 SlotIndex Stop
[all...]
H A DLiveDebugVariables.cpp72 typedef IntervalMap<SlotIndex, unsigned, 4> LocMap;
129 void insertDebugValue(MachineBasicBlock *MBB, SlotIndex Idx, unsigned LocNo,
206 void addDef(SlotIndex Idx, const MachineOperand &LocMO) {
212 // A later DBG_VALUE at the same SlotIndex overrides the old location.
227 void extendDef(SlotIndex Idx, unsigned LocNo,
229 SmallVectorImpl<SlotIndex> *Kills,
241 const SmallVectorImpl<SlotIndex> &Kills,
242 SmallVectorImpl<std::pair<SlotIndex, unsigned> > &NewDefs,
314 bool handleDebugValue(MachineInstr *MI, SlotIndex Idx);
448 bool LDVImpl::handleDebugValue(MachineInstr *MI, SlotIndex Id
[all...]
H A DLiveRangeCalc.cpp48 SlotIndex Idx;
80 // Find the SlotIndex being read.
81 SlotIndex Idx;
116 SlotIndex Start, End;
136 SlotIndex Kill,
139 assert(Kill.isValid() && "Invalid SlotIndex");
175 SlotIndex Kill,
219 SlotIndex Start, End;
238 Kill = SlotIndex();
254 SlotIndex Star
[all...]
H A DSpiller.cpp139 SlotIndex loadIndex =
141 SlotIndex endIndex = loadIndex.getNextIndex();
152 SlotIndex storeIndex =
154 SlotIndex beginIndex = storeIndex.getPrevIndex();
H A DLiveInterval.cpp34 LiveInterval::iterator LiveInterval::find(SlotIndex Pos) {
52 VNInfo *LiveInterval::createDeadDef(SlotIndex Def,
61 if (SlotIndex::isSameInstr(Def, I->start)) {
74 assert(SlotIndex::isEarlierInstr(Def, I->start) && "Already live at def");
162 SlotIndex Def = std::max(I->start, J->start);
183 bool LiveInterval::overlaps(SlotIndex Start, SlotIndex End) const {
222 void LiveInterval::extendIntervalEndTo(Ranges::iterator I, SlotIndex NewEnd) {
252 LiveInterval::extendIntervalStartTo(Ranges::iterator I, SlotIndex NewStart) {
285 SlotIndex Star
[all...]
H A DLiveRangeEdit.cpp78 SlotIndex OrigIdx,
79 SlotIndex UseIdx) const {
102 if (SlotIndex::isSameInstr(OrigIdx, UseIdx))
112 SlotIndex UseIdx,
121 SlotIndex DefIdx;
141 SlotIndex LiveRangeEdit::rematerializeAt(MachineBasicBlock &MBB,
221 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot();
H A DStackColoring.cpp118 /// SlotIndex analysis object.
392 SmallVector<SlotIndex, 16> Starts;
393 SmallVector<SlotIndex, 16> Finishes;
420 SlotIndex ThisIndex = Indexes->getInstructionIndex(MI);
449 SlotIndex S = Starts[i];
450 SlotIndex F = Finishes[i];
457 SlotIndex NewStart = Indexes->getMBBStartIdx(MBB);
458 SlotIndex NewFin = Indexes->getMBBEndIdx(MBB);
579 SlotIndex Index = Indexes->getInstructionIndex(I);
635 SlotIndex Inde
[all...]
H A DRegisterCoalescer.cpp435 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot();
449 SlotIndex CopyUseIdx = CopyIdx.getRegSlot(true);
482 SlotIndex FillerStart = ValLR->end, FillerEnd = BLR->start;
573 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot();
631 SlotIndex UseIdx = LIS->getInstructionIndex(UseMI);
683 SlotIndex UseIdx = LIS->getInstructionIndex(UseMI).getRegSlot(true);
703 SlotIndex DefIdx = UseIdx.getRegSlot();
746 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI);
875 SlotIndex NewMIIdx = LIS->getInstructionIndex(NewMI);
903 SlotIndex Id
[all...]
H A DRegisterPressure.cpp150 TopIdx = BottomIdx = SlotIndex();
165 /// We happen to need the SlotIndex for the next top for pressure update.
166 void IntervalPressure::openTop(SlotIndex NextTop) {
169 TopIdx = SlotIndex();
182 void IntervalPressure::openBottom(SlotIndex PrevBottom) {
185 BottomIdx = SlotIndex();
261 SlotIndex RegPressureTracker::getCurrSlot() const {
455 SlotIndex SlotIdx;
516 SlotIndex SlotIdx;
727 SlotIndex PriorUseId
[all...]
H A DInlineSpiller.cpp182 void insertReload(LiveInterval &NewLI, SlotIndex,
185 SlotIndex, MachineBasicBlock::iterator MI);
671 SlotIndex Idx = LIS.getInstructionIndex(CopyMI);
768 SlotIndex Idx = LIS.getInstructionIndex(MI);
839 SlotIndex UseIdx = LIS.getInstructionIndex(MI).getRegSlot(true);
892 SlotIndex DefIdx = Edit->rematerializeAt(*MI->getParent(), MI, NewLI.reg, RM,
1079 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot();
1112 SlotIndex Idx,
1118 SlotIndex LoadIdx = LIS.InsertMachineInstrInMaps(MI).getRegSlot();
1131 SlotIndex Id
[all...]
H A DStrongPHIElimination.cpp391 SlotIndex LastUseIndex = LI->getInstructionIndex(LastUse->getParent());
673 SlotIndex PredIndex = LI->getMBBEndIdx(PredBB);
731 SlotIndex MBBStartIndex = LI->getMBBStartIdx(MBB);
732 SlotIndex PHIIndex = LI->getInstructionIndex(PHI);
733 SlotIndex NextInstrIndex = PHIIndex.getNextIndex();
745 SlotIndex PHIIndex = LI->getInstructionIndex(PHI);
753 SlotIndex MBBStartIndex = LI->getMBBStartIdx(MBB);
776 SlotIndex MBBStartIndex = LI->getMBBStartIdx(MBB);
777 SlotIndex DestCopyIndex = LI->getInstructionIndex(CopyInstr);
787 SlotIndex PHIInde
[all...]
H A DRegAllocGreedy.cpp1052 SlotIndex IntfIn, IntfOut;
1101 SlotIndex IntfIn, IntfOut;
1370 ArrayRef<SlotIndex> Uses = SA->getUseSlots();
1384 SlotIndex SegStart = SE->enterIntvBefore(Uses[i]);
1385 SlotIndex SegStop = SE->leaveIntvAfter(Uses[i]);
1419 ArrayRef<SlotIndex> Uses = SA->getUseSlots();
1423 SlotIndex StartIdx =
1425 SlotIndex StopIdx =
1505 ArrayRef<SlotIndex> Uses = SA->getUseSlots();
1522 ArrayRef<SlotIndex> RM
[all...]
/external/llvm/include/llvm/CodeGen/
H A DSlotIndexes.h10 // This file implements SlotIndex and related classes. The purpose of SlotIndex
14 // SlotIndex is mostly a proxy for entries of the SlotIndexList, a class which
36 /// SlotIndex & SlotIndexes classes for the public interface to this
59 // poisoned, so that dangling SlotIndex access can be reliably detected.
91 /// SlotIndex - An opaque wrapper around machine indexes.
92 class SlotIndex { class in namespace:llvm
121 SlotIndex(IndexListEntry *entry, unsigned slot) function in class:llvm::SlotIndex
137 /// Returns the slot for this SlotIndex.
150 SlotIndex() function in class:llvm::SlotIndex
153 SlotIndex(const SlotIndex &li, Slot s) : lie(li.listEntry(), unsigned(s)) { function in class:llvm::SlotIndex
[all...]
H A DLiveInterval.h51 SlotIndex def;
54 VNInfo(unsigned i, SlotIndex d)
78 void markUnused() { def = SlotIndex(); }
85 SlotIndex start; // Start point of the interval (inclusive)
86 SlotIndex end; // End point of the interval (exclusive)
91 LiveRange(SlotIndex S, SlotIndex E, VNInfo *V)
98 bool contains(SlotIndex I) const {
104 bool containsRange(SlotIndex S, SlotIndex
[all...]
H A DLiveIntervalAnalysis.h70 SmallVector<SlotIndex, 8> RegMaskSlots;
153 /// If a SlotIndex in Indices is the end index of a basic block, LI will be
157 void extendToIndices(LiveInterval *LI, ArrayRef<SlotIndex> Indices);
166 void pruneValue(LiveInterval *LI, SlotIndex Kill,
167 SmallVectorImpl<SlotIndex> *EndPoints);
184 SlotIndex getInstructionIndex(const MachineInstr *instr) const {
189 MachineInstr* getInstructionFromIndex(SlotIndex index) const {
194 SlotIndex getMBBStartIdx(const MachineBasicBlock *mbb) const {
199 SlotIndex getMBBEndIdx(const MachineBasicBlock *mbb) const {
213 MachineBasicBlock* getMBBFromIndex(SlotIndex inde
[all...]
H A DCalcSpillWeights.h34 // accidental SlotIndex gaps for small intervals. The effect is that small
38 return UseDefFreq / (Size + 25*SlotIndex::InstrDist);
H A DLiveIntervalUnion.h36 const IntervalMap<SlotIndex, LiveInterval*>::const_iterator &LUSeg) {
47 // Mapping SlotIndex intervals to virtual register numbers.
48 typedef IntervalMap<SlotIndex, LiveInterval*> LiveSegments;
72 SegmentIter find(SlotIndex x) { return Segments.find(x); }
74 SlotIndex startIndex() const { return Segments.start(); }
H A DLiveRangeEdit.h87 bool allUsesAvailableAt(const MachineInstr *OrigMI, SlotIndex OrigIdx,
88 SlotIndex UseIdx) const;
171 SlotIndex UseIdx,
177 /// Return the SlotIndex of the new instruction.
178 SlotIndex rematerializeAt(MachineBasicBlock &MBB,
H A DRegisterPressure.h62 /// because delimiting regions by SlotIndex is more robust and convenient than
67 SlotIndex TopIdx;
68 SlotIndex BottomIdx;
72 void openTop(SlotIndex NextTop);
74 void openBottom(SlotIndex PrevBottom);
237 /// \brief Get the SlotIndex for the first nondebug instruction including or
239 SlotIndex getCurrSlot() const;

Completed in 288 milliseconds

12