/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); 172 void extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg = 0); 223 /// live-through, set Kill = SLotIndex() and also call 227 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 | 306 SlotIndex Begin = Indexes->getMBBStartIdx(MBB); 340 SlotIndex Def = VNI->def; 345 typedef SmallVector<std::pair<SlotIndex, VNInfo*>, 16> ShrinkToUsesWorkList; 357 SlotIndex Idx = WorkList.back().first; 361 SlotIndex BlockStart = Indexes.getMBBStartIdx(MBB); 375 SlotIndex Stop = Indexes.getMBBEndIdx(Pred); 391 SlotIndex Stop = Indexes.getMBBEndIdx(Pred); 423 SlotIndex Idx = getInstructionIndex(UseMI).getRegSlot(); 463 SlotIndex Def = VNI->def; 507 SlotIndex LastIdx [all...] |
SplitKit.cpp | 57 SlotIndex SplitAnalysis::computeLastSplitPoint(unsigned Num) { 60 std::pair<SlotIndex, SlotIndex> &LSP = LastSplitPoint[Num]; 61 SlotIndex MBBEnd = LIS.getMBBEndIdx(MBB); 101 if (!SlotIndex::isEarlierInstr(VNI->def, LSP.second) && VNI->def < MBBEnd) 111 SlotIndex LSP = getLastSplitPoint(MBB->getNumber()); 138 SlotIndex::isSameInstr), 174 SmallVectorImpl<SlotIndex>::const_iterator UseI, UseE; 183 SlotIndex Start, Stop; 218 SlotIndex LastStop = LVI->end [all...] |
InterferenceCache.cpp | 87 PrevPos = SlotIndex(); 104 PrevPos = SlotIndex(); 125 SlotIndex Start, Stop; 149 ArrayRef<SlotIndex> RegMaskSlots; 153 BI->First = BI->Last = SlotIndex(); 160 SlotIndex StartI = I.start(); 173 SlotIndex StartI = I->start; 183 SlotIndex Limit = BI->First.isValid() ? BI->First : Stop; 215 SlotIndex StopI = I.stop(); 232 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 | 76 typedef IntervalMap<SlotIndex, unsigned, 4> LocMap; 134 void insertDebugValue(MachineBasicBlock *MBB, SlotIndex Idx, unsigned LocNo, 213 void addDef(SlotIndex Idx, const MachineOperand &LocMO) { 219 // A later DBG_VALUE at the same SlotIndex overrides the old location. 234 void extendDef(SlotIndex Idx, unsigned LocNo, 236 SmallVectorImpl<SlotIndex> *Kills, 248 const SmallVectorImpl<SlotIndex> &Kills, 249 SmallVectorImpl<std::pair<SlotIndex, unsigned> > &NewDefs, 314 /// @param Idx Last valid SLotIndex before instruction. 316 bool handleDebugValue(MachineInstr *MI, SlotIndex Idx) [all...] |
LiveInterval.cpp | 62 VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator &VNInfoAllocator) { 73 if (SlotIndex::isSameInstr(Def, S->start)) { 86 assert(SlotIndex::isEarlierInstr(Def, S->start) && "Already live at def"); 92 VNInfo *extendInBlock(SlotIndex StartIdx, SlotIndex Use) { 111 void extendSegmentEndTo(iterator I, SlotIndex NewEnd) { 139 iterator extendSegmentStartTo(iterator I, SlotIndex NewStart) { 173 SlotIndex Start = S.start, End = S.end; 249 iterator find(SlotIndex Pos) { return LR->find(Pos); } 279 iterator find(SlotIndex Pos) [all...] |
LiveRangeCalc.cpp | 46 SlotIndex DefIdx = 169 SlotIndex UseIdx; 203 SlotIndex Start, End; 222 void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg) { 223 assert(Use.isValid() && "Invalid SlotIndex"); 258 SlotIndex Use, unsigned PhysReg) { 301 SlotIndex Start, End; 320 Use = SlotIndex(); 336 SlotIndex Start, End; 429 SlotIndex Start, End [all...] |
LiveRangeEdit.cpp | 83 SlotIndex OrigIdx, 84 SlotIndex UseIdx) const { 107 if (SlotIndex::isSameInstr(OrigIdx, UseIdx)) 117 SlotIndex UseIdx, 126 SlotIndex DefIdx; 146 SlotIndex LiveRangeEdit::rematerializeAt(MachineBasicBlock &MBB, 224 SlotIndex Idx = LIS.getInstructionIndex(MI).getRegSlot();
|
RegisterCoalescer.cpp | 460 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot(); 488 SlotIndex CopyUseIdx = CopyIdx.getRegSlot(true); 521 SlotIndex FillerStart = ValS->end, FillerEnd = BS->start; 635 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot(); 681 SlotIndex UseIdx = LIS->getInstructionIndex(UseMI); 734 SlotIndex UseIdx = LIS->getInstructionIndex(UseMI).getRegSlot(true); 755 SlotIndex DefIdx = UseIdx.getRegSlot(); 784 SlotIndex AIdx = CopyIdx.getRegSlot(true); [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); 560 SlotIndex Index = Indexes->getInstructionIndex(&I); 611 SlotIndex Index = Indexes->getInstructionIndex(&I) [all...] |
RegisterPressure.cpp | 103 TopIdx = BottomIdx = SlotIndex(); 118 /// We happen to need the SlotIndex for the next top for pressure update. 119 void IntervalPressure::openTop(SlotIndex NextTop) { 122 TopIdx = SlotIndex(); 135 void IntervalPressure::openBottom(SlotIndex PrevBottom) { 138 BottomIdx = SlotIndex(); 226 SlotIndex RegPressureTracker::getCurrSlot() const { 481 SlotIndex SlotIdx; 566 SlotIndex SlotIdx; 727 SlotIndex SlotIdx = LIS->getInstructionIndex(MI) [all...] |
InlineSpiller.cpp | 178 void insertReload(unsigned VReg, SlotIndex, MachineBasicBlock::iterator MI); 688 SlotIndex Idx = LIS.getInstructionIndex(CopyMI); 787 SlotIndex Idx = LIS.getInstructionIndex(MI); 867 SlotIndex UseIdx = LIS.getInstructionIndex(MI).getRegSlot(true); [all...] |
RegAllocGreedy.cpp | 543 (Size / SlotIndex::InstrDist) > (2 * RC.getNumRegs()); [all...] |
PHIElimination.cpp | 313 SlotIndex DestCopyIndex = LIS->InsertMachineInstrInMaps(NewInstr); 315 SlotIndex MBBStartIndex = LIS->getMBBStartIdx(&MBB); 476 SlotIndex startIdx = LIS->getMBBStartIdx(*SI); 516 SlotIndex LastUseIndex = LIS->getInstructionIndex(KillInst);
|
/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 | 53 SlotIndex def; 56 VNInfo(unsigned i, SlotIndex d) 80 void markUnused() { def = SlotIndex(); } 89 const SlotIndex EndPoint; 93 LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint, 138 /// The end point is an invalid SlotIndex only if the live range doesn't 143 SlotIndex endPoint() const { 160 SlotIndex start; // Start point of the interval (inclusive) 161 SlotIndex end; // End point of the interval (exclusive) 166 Segment(SlotIndex S, SlotIndex E, VNInfo *V [all...] |
LiveIntervalAnalysis.h | 73 SmallVector<SlotIndex, 8> RegMaskSlots; 170 /// If a SlotIndex in Indices is the end index of a basic block, LI will be 174 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices); 184 void pruneValue(LiveRange &LR, SlotIndex Kill, 185 SmallVectorImpl<SlotIndex> *EndPoints); 202 SlotIndex getInstructionIndex(const MachineInstr *instr) const { 207 MachineInstr* getInstructionFromIndex(SlotIndex index) const { 212 SlotIndex getMBBStartIdx(const MachineBasicBlock *mbb) const { 217 SlotIndex getMBBEndIdx(const MachineBasicBlock *mbb) const { 231 MachineBasicBlock* getMBBFromIndex(SlotIndex index) const [all...] |
CalcSpillWeights.h | 38 // accidental SlotIndex gaps for small intervals. The effect is that small 42 return UseDefFreq / (Size + 25*SlotIndex::InstrDist);
|
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(); }
|
LiveRangeEdit.h | 88 bool allUsesAvailableAt(const MachineInstr *OrigMI, SlotIndex OrigIdx, 89 SlotIndex UseIdx) const; 182 SlotIndex UseIdx, 188 /// Return the SlotIndex of the new instruction. 189 SlotIndex rematerializeAt(MachineBasicBlock &MBB,
|
RegisterPressure.h | 47 /// because delimiting regions by SlotIndex is more robust and convenient than 52 SlotIndex TopIdx; 53 SlotIndex BottomIdx; 57 void openTop(SlotIndex NextTop); 59 void openBottom(SlotIndex PrevBottom); 301 /// \brief Get the SlotIndex for the first nondebug instruction including or 303 SlotIndex getCurrSlot() const;
|
/external/llvm/lib/Target/Hexagon/ |
HexagonExpandCondsets.cpp | 137 LiveInterval::iterator nextSegment(LiveInterval &LI, SlotIndex S); 138 LiveInterval::iterator prevSegment(LiveInterval &LI, SlotIndex S); 139 void makeDefined(unsigned Reg, SlotIndex S, bool SetDef); 140 void makeUndead(unsigned Reg, SlotIndex S); 143 void terminateSegment(LiveInterval::iterator LT, SlotIndex S, 233 SlotIndex S) { 243 SlotIndex S) { 261 void HexagonExpandCondsets::makeDefined(unsigned Reg, SlotIndex S, 277 void HexagonExpandCondsets::makeUndead(unsigned Reg, SlotIndex S) { 334 SlotIndex S = LIS->getInstructionIndex(MI).getRegSlot() [all...] |