/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;
|