HomeSort by relevance Sort by last modified time
    Searched refs:SlotIndex (Results 1 - 25 of 30) sorted by null

1 2

  /external/llvm/lib/CodeGen/
SplitKit.h 69 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 getLastSplitPoint(unsigned Num)
    [all...]
LiveRangeCalc.h 86 // Position in block where the live-in range ends, or SlotIndex() if the
89 SlotIndex Kill;
94 LiveInBlock(LiveRange &LR, MachineDomTreeNode *node, SlotIndex kill)
115 SlotIndex Kill, unsigned PhysReg);
163 void extend(LiveRange &LR, SlotIndex Kill, unsigned PhysReg = 0);
217 /// live-through, set Kill = SLotIndex() and also call
221 SlotIndex Kill = SlotIndex()) {
SlotIndexes.cpp 77 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(nullptr, index += SlotIndex::InstrDist));
97 MBBRanges[mbb->getNumber()].second = SlotIndex(&indexList.back(),
98 SlotIndex::Slot_Block);
121 index += SlotIndex::InstrDist;
129 const unsigned Space = SlotIndex::InstrDist/2
    [all...]
LiveIntervalAnalysis.cpp 288 SlotIndex Begin = Indexes->getMBBStartIdx(MBB);
325 SmallVector<std::pair<SlotIndex, VNInfo*>, 16> WorkList;
337 SlotIndex Idx = getInstructionIndex(UseMI).getRegSlot();
372 SlotIndex Idx = WorkList.back().first;
376 SlotIndex BlockStart = getMBBStartIdx(MBB);
390 SlotIndex Stop = getMBBEndIdx(*PI);
407 SlotIndex Stop = getMBBEndIdx(*PI);
458 ArrayRef<SlotIndex> Indices) {
465 void LiveIntervals::pruneValue(LiveInterval *LI, SlotIndex Kill,
466 SmallVectorImpl<SlotIndex> *EndPoints)
    [all...]
SplitKit.cpp 62 SlotIndex SplitAnalysis::computeLastSplitPoint(unsigned Num) {
65 std::pair<SlotIndex, SlotIndex> &LSP = LastSplitPoint[Num];
66 SlotIndex MBBEnd = LIS.getMBBEndIdx(MBB);
106 if (!SlotIndex::isEarlierInstr(VNI->def, LSP.second) && VNI->def < MBBEnd)
116 SlotIndex LSP = getLastSplitPoint(MBB->getNumber());
144 SlotIndex::isSameInstr),
180 SmallVectorImpl<SlotIndex>::const_iterator UseI, UseE;
189 SlotIndex Start, Stop;
224 SlotIndex LastStop = LVI->end
    [all...]
InterferenceCache.cpp 86 PrevPos = SlotIndex();
103 PrevPos = SlotIndex();
124 SlotIndex Start, Stop;
148 ArrayRef<SlotIndex> RegMaskSlots;
152 BI->First = BI->Last = SlotIndex();
159 SlotIndex StartI = I.start();
172 SlotIndex StartI = I->start;
182 SlotIndex Limit = BI->First.isValid() ? BI->First : Stop;
214 SlotIndex StopI = I.stop();
231 SlotIndex StopI = I->end
    [all...]
InterferenceCache.h 34 SlotIndex First;
35 SlotIndex Last;
54 /// Indexes - Mapping block numbers to SlotIndex ranges.
61 SlotIndex PrevPos;
222 SlotIndex first() {
228 SlotIndex last() {
LiveDebugVariables.cpp 75 typedef IntervalMap<SlotIndex, unsigned, 4> LocMap;
132 void insertDebugValue(MachineBasicBlock *MBB, SlotIndex Idx, unsigned LocNo,
210 void addDef(SlotIndex Idx, const MachineOperand &LocMO) {
216 // A later DBG_VALUE at the same SlotIndex overrides the old location.
231 void extendDef(SlotIndex Idx, unsigned LocNo,
233 SmallVectorImpl<SlotIndex> *Kills,
245 const SmallVectorImpl<SlotIndex> &Kills,
246 SmallVectorImpl<std::pair<SlotIndex, unsigned> > &NewDefs,
317 /// @param Idx Last valid SLotIndex before instruction.
319 bool handleDebugValue(MachineInstr *MI, SlotIndex Idx)
    [all...]
LiveRangeCalc.cpp 48 SlotIndex Idx;
79 // Find the SlotIndex being read.
80 SlotIndex Idx;
115 SlotIndex Start, End;
134 void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Kill, unsigned PhysReg) {
135 assert(Kill.isValid() && "Invalid SlotIndex");
170 SlotIndex Kill, unsigned PhysReg) {
213 SlotIndex Start, End;
232 Kill = SlotIndex();
248 SlotIndex Start, End
    [all...]
LiveInterval.cpp 34 LiveRange::iterator LiveRange::find(SlotIndex Pos) {
52 VNInfo *LiveRange::createDeadDef(SlotIndex Def,
61 if (SlotIndex::isSameInstr(Def, I->start)) {
74 assert(SlotIndex::isEarlierInstr(Def, I->start) && "Already live at def");
161 SlotIndex Def = std::max(I->start, J->start);
182 bool LiveRange::overlaps(SlotIndex Start, SlotIndex End) const {
220 void LiveRange::extendSegmentEndTo(iterator I, SlotIndex NewEnd) {
250 LiveRange::extendSegmentStartTo(iterator I, SlotIndex NewStart) {
282 SlotIndex Start = S.start, End = S.end
    [all...]
LiveRangeEdit.cpp 85 SlotIndex OrigIdx,
86 SlotIndex UseIdx) const {
109 if (SlotIndex::isSameInstr(OrigIdx, UseIdx))
119 SlotIndex UseIdx,
128 SlotIndex DefIdx;
148 SlotIndex LiveRangeEdit::rematerializeAt(MachineBasicBlock &MBB,
226 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot();
RegisterCoalescer.cpp 434 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot();
448 SlotIndex CopyUseIdx = CopyIdx.getRegSlot(true);
481 SlotIndex FillerStart = ValS->end, FillerEnd = BS->start;
572 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot();
627 SlotIndex UseIdx = LIS->getInstructionIndex(UseMI);
679 SlotIndex UseIdx = LIS->getInstructionIndex(UseMI).getRegSlot(true);
699 SlotIndex DefIdx = UseIdx.getRegSlot();
742 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI);
    [all...]
StackColoring.cpp 120 /// SlotIndex analysis object.
372 SmallVector<SlotIndex, 16> Starts;
373 SmallVector<SlotIndex, 16> Finishes;
397 SlotIndex ThisIndex = Indexes->getInstructionIndex(MI);
426 SlotIndex S = Starts[i];
427 SlotIndex F = Finishes[i];
434 SlotIndex NewStart = Indexes->getMBBStartIdx(&MBB);
435 SlotIndex NewFin = Indexes->getMBBEndIdx(&MBB);
559 SlotIndex Index = Indexes->getInstructionIndex(&I);
610 SlotIndex Index = Indexes->getInstructionIndex(&I)
    [all...]
RegisterPressure.cpp 104 TopIdx = BottomIdx = SlotIndex();
119 /// We happen to need the SlotIndex for the next top for pressure update.
120 void IntervalPressure::openTop(SlotIndex NextTop) {
123 TopIdx = SlotIndex();
136 void IntervalPressure::openBottom(SlotIndex PrevBottom) {
139 BottomIdx = SlotIndex();
227 SlotIndex RegPressureTracker::getCurrSlot() const {
480 SlotIndex SlotIdx;
565 SlotIndex SlotIdx;
726 SlotIndex SlotIdx = LIS->getInstructionIndex(MI)
    [all...]
InlineSpiller.cpp 184 void insertReload(unsigned VReg, SlotIndex, MachineBasicBlock::iterator MI);
686 SlotIndex Idx = LIS.getInstructionIndex(CopyMI);
785 SlotIndex Idx = LIS.getInstructionIndex(MI);
856 SlotIndex UseIdx = LIS.getInstructionIndex(MI).getRegSlot(true);
    [all...]
RegAllocGreedy.cpp 518 (Size / SlotIndex::InstrDist) > (2 * MRI->getRegClass(Reg)->getNumRegs());
    [all...]
PHIElimination.cpp 310 SlotIndex DestCopyIndex = LIS->InsertMachineInstrInMaps(NewInstr);
312 SlotIndex MBBStartIndex = LIS->getMBBStartIdx(&MBB);
473 SlotIndex startIdx = LIS->getMBBStartIdx(*SI);
513 SlotIndex LastUseIndex = LIS->getInstructionIndex(KillInst);
MachineVerifier.cpp 89 SlotIndex lastIndex;
455 lastIndex = SlotIndex();
709 SlotIndex idx = Indexes->getInstructionIndex(MI);
    [all...]
  /external/llvm/include/llvm/CodeGen/
SlotIndexes.h 10 // 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 {
121 SlotIndex(IndexListEntry *entry, unsigned slot)
137 /// Returns the slot for this SlotIndex.
150 SlotIndex() : lie(nullptr, 0) {
    [all...]
LiveInterval.h 52 SlotIndex def;
55 VNInfo(unsigned i, SlotIndex d)
79 void markUnused() { def = SlotIndex(); }
88 const SlotIndex EndPoint;
92 LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint,
131 /// The end point is an invalid SlotIndex only if the live range doesn't
136 SlotIndex endPoint() const {
153 SlotIndex start; // Start point of the interval (inclusive)
154 SlotIndex end; // End point of the interval (exclusive)
159 Segment(SlotIndex S, SlotIndex E, VNInfo *V
    [all...]
LiveIntervalAnalysis.h 71 SmallVector<SlotIndex, 8> RegMaskSlots;
173 /// If a SlotIndex in Indices is the end index of a basic block, LI will be
177 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices);
186 void pruneValue(LiveInterval *LI, SlotIndex Kill,
187 SmallVectorImpl<SlotIndex> *EndPoints);
204 SlotIndex getInstructionIndex(const MachineInstr *instr) const {
209 MachineInstr* getInstructionFromIndex(SlotIndex index) const {
214 SlotIndex getMBBStartIdx(const MachineBasicBlock *mbb) const {
219 SlotIndex getMBBEndIdx(const MachineBasicBlock *mbb) const {
233 MachineBasicBlock* getMBBFromIndex(SlotIndex index) const
    [all...]
LiveIntervalUnion.h 36 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(); }
CalcSpillWeights.h 36 // accidental SlotIndex gaps for small intervals. The effect is that small
40 return UseDefFreq / (Size + 25*SlotIndex::InstrDist);
LiveRangeEdit.h 87 bool allUsesAvailableAt(const MachineInstr *OrigMI, SlotIndex OrigIdx,
88 SlotIndex UseIdx) const;
184 SlotIndex UseIdx,
190 /// Return the SlotIndex of the new instruction.
191 SlotIndex rematerializeAt(MachineBasicBlock &MBB,
RegisterPressure.h 62 /// 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);
316 /// \brief Get the SlotIndex for the first nondebug instruction including or
318 SlotIndex getCurrSlot() const;

Completed in 242 milliseconds

1 2