/external/swiftshader/third_party/LLVM/include/llvm/CodeGen/ |
D | LiveIntervalAnalysis.h | 60 typedef DenseMap<unsigned, LiveInterval*> Reg2IntervalMap; 86 LiveInterval &getInterval(unsigned reg) { in getInterval() 92 const LiveInterval &getInterval(unsigned reg) const { in getInterval() 111 double getScaledIntervalSize(LiveInterval& I) { in getScaledIntervalSize() 123 unsigned getApproximateInstructionCount(LiveInterval& I) { in getApproximateInstructionCount() 133 bool conflictsWithPhysReg(const LiveInterval &li, VirtRegMap &vrm, 138 bool conflictsWithAliasRef(LiveInterval &li, unsigned Reg, 142 LiveInterval &getOrCreateInterval(unsigned reg) { in getOrCreateInterval() 151 LiveInterval *dupInterval(LiveInterval *li); 165 bool shrinkToUses(LiveInterval *li, [all …]
|
/external/swiftshader/third_party/LLVM/lib/CodeGen/ |
D | LiveRangeEdit.h | 55 LiveInterval &parent_; 56 SmallVectorImpl<LiveInterval*> &newRegs_; 58 const SmallVectorImpl<LiveInterval*> *uselessRegs_; 86 bool foldAsLoad(LiveInterval *LI, SmallVectorImpl<MachineInstr*> &Dead, 96 LiveRangeEdit(LiveInterval &parent, 97 SmallVectorImpl<LiveInterval*> &newRegs, 99 const SmallVectorImpl<LiveInterval*> *uselessRegs = 0) 106 LiveInterval &getParent() const { return parent_; } in getParent() 110 typedef SmallVectorImpl<LiveInterval*>::const_iterator iterator; 115 LiveInterval *get(unsigned idx) const { return newRegs_[idx+firstNew_]; } in get() [all …]
|
D | RegAllocBase.h | 113 LiveIntervalUnion::Query &query(LiveInterval &VirtReg, unsigned PhysReg) { in query() 134 virtual void enqueue(LiveInterval *LI) = 0; 137 virtual LiveInterval *dequeue() = 0; 143 virtual unsigned selectOrSplit(LiveInterval &VirtReg, 144 SmallVectorImpl<LiveInterval*> &splitLVRs) = 0; 152 unsigned checkPhysRegInterference(LiveInterval& VirtReg, unsigned PhysReg); 156 void assign(LiveInterval &VirtReg, unsigned PhysReg); 161 void unassign(LiveInterval &VirtReg, unsigned PhysReg); 166 bool spillInterferences(LiveInterval &VirtReg, unsigned PhysReg, 167 SmallVectorImpl<LiveInterval*> &SplitVRegs); [all …]
|
D | LiveInterval.cpp | 33 LiveInterval::iterator LiveInterval::find(SlotIndex Pos) { in find() 52 bool LiveInterval::killedInRange(SlotIndex Start, SlotIndex End) const { in killedInRange() 84 bool LiveInterval::overlapsFrom(const LiveInterval& other, in overlapsFrom() 127 bool LiveInterval::overlaps(SlotIndex Start, SlotIndex End) const { in overlaps() 137 void LiveInterval::markValNoForDeletion(VNInfo *ValNo) { in markValNoForDeletion() 149 void LiveInterval::RenumberValues(LiveIntervals &lis) { in RenumberValues() 166 void LiveInterval::extendIntervalEndTo(Ranges::iterator I, SlotIndex NewEnd) { in extendIntervalEndTo() 195 LiveInterval::Ranges::iterator 196 LiveInterval::extendIntervalStartTo(Ranges::iterator I, SlotIndex NewStart) { in extendIntervalStartTo() 227 LiveInterval::iterator [all …]
|
D | LiveIntervalUnion.h | 39 const IntervalMap<SlotIndex, LiveInterval*>::const_iterator &LUSeg) { in overlap() 51 typedef IntervalMap<SlotIndex, LiveInterval*> LiveSegments; 92 void unify(LiveInterval &VirtReg); 95 void extract(LiveInterval &VirtReg); 112 LiveInterval *VirtReg; 113 LiveInterval::iterator VirtRegI; // current position in VirtReg 115 SmallVector<LiveInterval*,4> InterferingVRegs; 124 Query(LiveInterval *VReg, LiveIntervalUnion *LIU): in Query() 140 void init(unsigned UTag, LiveInterval *VReg, LiveIntervalUnion *LIU) { in init() 154 LiveInterval &virtReg() const { in virtReg() [all …]
|
D | RegAllocBasic.cpp | 71 bool operator()(LiveInterval *A, LiveInterval *B) const { in operator ()() 94 std::priority_queue<LiveInterval*, std::vector<LiveInterval*>, 111 virtual float getPriority(LiveInterval *LI) { return LI->weight; } in getPriority() 113 virtual void enqueue(LiveInterval *LI) { in enqueue() 117 virtual LiveInterval *dequeue() { in dequeue() 120 LiveInterval *LI = Queue.top(); in dequeue() 125 virtual unsigned selectOrSplit(LiveInterval &VirtReg, 126 SmallVectorImpl<LiveInterval*> &SplitVRegs); 268 LiveInterval &VirtReg = *I->second; in seedLiveRegs() 276 void RegAllocBase::assign(LiveInterval &VirtReg, unsigned PhysReg) { in assign() [all …]
|
D | LiveIntervalUnion.cpp | 28 void LiveIntervalUnion::unify(LiveInterval &VirtReg) { in unify() 34 LiveInterval::iterator RegPos = VirtReg.begin(); in unify() 35 LiveInterval::iterator RegEnd = VirtReg.end(); in unify() 55 void LiveIntervalUnion::extract(LiveInterval &VirtReg) { in extract() 61 LiveInterval::iterator RegPos = VirtReg.begin(); in extract() 62 LiveInterval::iterator RegEnd = VirtReg.end(); in extract() 104 bool LiveIntervalUnion::Query::isSeenInterference(LiveInterval *VirtReg) const { in isSeenInterference() 105 SmallVectorImpl<LiveInterval*>::const_iterator I = in isSeenInterference() 141 LiveInterval::iterator VirtRegEnd = VirtReg->end(); in collectInterferingVRegs() 142 LiveInterval *RecentReg = 0; in collectInterferingVRegs() [all …]
|
D | RegAllocGreedy.cpp | 138 LiveRangeStage getStage(const LiveInterval &VirtReg) const { in getStage() 142 void setStage(const LiveInterval &VirtReg, LiveRangeStage Stage) { in setStage() 240 virtual void enqueue(LiveInterval *LI); 241 virtual LiveInterval *dequeue(); 242 virtual unsigned selectOrSplit(LiveInterval&, 243 SmallVectorImpl<LiveInterval*>&); 264 bool shouldEvict(LiveInterval &A, bool, LiveInterval &B, bool); 265 bool canEvictInterference(LiveInterval&, unsigned, bool, EvictionCost&); 266 void evictInterference(LiveInterval&, unsigned, 267 SmallVectorImpl<LiveInterval*>&); [all …]
|
D | RenderMachineFunction.h | 27 class LiveInterval; variable 54 bool operator()(const LiveInterval *li1, const LiveInterval *li2) const { in operator() 59 typedef std::set<const LiveInterval*, IntervalComp> IntervalSet; 215 void rememberUseDefs(const LiveInterval *li); 217 void rememberSpills(const LiveInterval *li, 218 const std::vector<LiveInterval*> &spills); 220 bool isSpill(const LiveInterval *li) const; 259 LiveState getLiveStateAt(const LiveInterval *li, SlotIndex i) const; 265 typedef std::map<const LiveInterval*, std::set<const LiveInterval*> > 269 typedef std::map<const LiveInterval*, const LiveInterval*> SpillForMap; [all …]
|
D | RegAllocLinearScan.cpp | 114 typedef std::pair<LiveInterval*, LiveInterval::iterator> IntervalPtr; 149 std::vector<LiveInterval*> handled_; 163 typedef std::priority_queue<LiveInterval*, 164 SmallVector<LiveInterval*, 64>, 165 greater_ptr<LiveInterval> > IntervalHeap; 253 LiveInterval *hasNextReloadInterval(LiveInterval *cur); 256 void DowngradeRegister(LiveInterval *li, unsigned Reg); 263 void assignRegOrStackSlotAtInterval(LiveInterval* cur); 273 void findIntervalsToSpill(LiveInterval *cur, 276 SmallVector<LiveInterval*, 8> &SpillIntervals); [all …]
|
D | LiveRangeCalc.h | 74 LiveInterval *LI; 88 LiveInBlock(LiveInterval *li, MachineDomTreeNode *node, SlotIndex kill) in LiveInBlock() 103 VNInfo *findReachingDefs(LiveInterval *LI, 139 void calculate(LiveInterval *LI, 157 void extend(LiveInterval *LI, 167 void extendToUses(LiveInterval *LI, 206 void addLiveInBlock(LiveInterval *LI,
|
/external/llvm/include/llvm/CodeGen/ |
D | LiveIntervalUnion.h | 35 overlap(const LiveInterval::Segment &VRSeg, in overlap() 36 const IntervalMap<SlotIndex, LiveInterval*>::const_iterator &LUSeg) { in overlap() 48 typedef IntervalMap<SlotIndex, LiveInterval*> LiveSegments; 87 void unify(LiveInterval &VirtReg, const LiveRange &Range); 88 void unify(LiveInterval &VirtReg) { in unify() 93 void extract(LiveInterval &VirtReg, const LiveRange &Range); 94 void extract(LiveInterval &VirtReg) { in extract() 113 LiveInterval *VirtReg; 114 LiveInterval::iterator VirtRegI; // current position in VirtReg 116 SmallVector<LiveInterval*,4> InterferingVRegs; [all …]
|
D | LiveIntervalAnalysis.h | 67 IndexedMap<LiveInterval*, VirtReg2IndexFunctor> VirtRegIntervals; 109 LiveInterval &getInterval(unsigned Reg) { in getInterval() 116 const LiveInterval &getInterval(unsigned Reg) const { in getInterval() 125 LiveInterval &createEmptyInterval(unsigned Reg) { in createEmptyInterval() 132 LiveInterval &createAndComputeVirtRegInterval(unsigned Reg) { in createAndComputeVirtRegInterval() 133 LiveInterval &LI = createEmptyInterval(Reg); in createAndComputeVirtRegInterval() 146 LiveInterval::Segment addSegmentToEndOfBlock(unsigned reg, 155 bool shrinkToUses(LiveInterval *li, 164 void shrinkToUses(LiveInterval::SubRange &SR, unsigned Reg); 274 MachineBasicBlock *intervalIsInOneMBB(const LiveInterval &LI) const; [all …]
|
D | LiveRegMatrix.h | 33 class LiveInterval; variable 103 InterferenceKind checkInterference(LiveInterval &VirtReg, unsigned PhysReg); 108 void assign(LiveInterval &VirtReg, unsigned PhysReg); 113 void unassign(LiveInterval &VirtReg); 128 bool checkRegMaskInterference(LiveInterval &VirtReg, unsigned PhysReg = 0); 133 bool checkRegUnitInterference(LiveInterval &VirtReg, unsigned PhysReg); 139 LiveIntervalUnion::Query &query(LiveInterval &VirtReg, unsigned RegUnit);
|
D | LiveRangeEdit.h | 61 LiveInterval *Parent; 97 bool foldAsLoad(LiveInterval *LI, SmallVectorImpl<MachineInstr*> &Dead); 99 typedef SetVector<LiveInterval*, 100 SmallVector<LiveInterval*, 8>, 101 SmallPtrSet<LiveInterval*, 8> > ToShrinkSet; 112 bool useIsKill(const LiveInterval &LI, const MachineOperand &MO) const; 126 LiveRangeEdit(LiveInterval *parent, SmallVectorImpl<unsigned> &newRegs, 139 LiveInterval &getParent() const { in getParent() 168 LiveInterval &createEmptyIntervalFrom(unsigned OldReg); 175 LiveInterval &createEmptyInterval() { in createEmptyInterval()
|
/external/llvm/lib/CodeGen/ |
D | RenameIndependentSubregs.cpp | 69 LiveInterval::SubRange *SR; 72 SubRangeInfo(LiveIntervals &LIS, LiveInterval::SubRange &SR, in SubRangeInfo() 78 bool renameComponents(LiveInterval &LI) const; 85 LiveInterval &LI) const; 91 const SmallVectorImpl<LiveInterval*> &Intervals) const; 96 const SmallVectorImpl<LiveInterval*> &Intervals) const; 101 const SmallVectorImpl<LiveInterval*> &Intervals) const; 122 bool RenameIndependentSubregs::renameComponents(LiveInterval &LI) const { in INITIALIZE_PASS_DEPENDENCY() 135 SmallVector<LiveInterval*, 4> Intervals; in INITIALIZE_PASS_DEPENDENCY() 143 LiveInterval &NewLI = LIS->createEmptyInterval(NewVReg); in INITIALIZE_PASS_DEPENDENCY() [all …]
|
D | RegAllocBasic.cpp | 49 bool operator()(LiveInterval *A, LiveInterval *B) const { in operator ()() 68 std::priority_queue<LiveInterval*, std::vector<LiveInterval*>, 90 void enqueue(LiveInterval *LI) override { in enqueue() 94 LiveInterval *dequeue() override { in dequeue() 97 LiveInterval *LI = Queue.top(); in dequeue() 102 unsigned selectOrSplit(LiveInterval &VirtReg, 111 bool spillInterferences(LiveInterval &VirtReg, unsigned PhysReg, 166 bool RABasic::spillInterferences(LiveInterval &VirtReg, unsigned PhysReg, in spillInterferences() 170 SmallVector<LiveInterval*, 8> Intfs; in spillInterferences() 179 LiveInterval *Intf = Q.interferingVRegs()[i - 1]; in spillInterferences() [all …]
|
D | RegAllocGreedy.cpp | 113 typedef SmallPtrSet<LiveInterval *, 4> SmallLISet; 212 LiveRangeStage getStage(const LiveInterval &VirtReg) const { in getStage() 216 void setStage(const LiveInterval &VirtReg, LiveRangeStage Stage) { in setStage() 315 SmallSetVector<LiveInterval *, 8> SetOfBrokenHints; 329 void enqueue(LiveInterval *LI) override; 330 LiveInterval *dequeue() override; 331 unsigned selectOrSplit(LiveInterval&, SmallVectorImpl<unsigned>&) override; 332 void aboutToRemoveInterval(LiveInterval &) override; 340 unsigned selectOrSplitImpl(LiveInterval &, SmallVectorImpl<unsigned> &, 346 void enqueue(PQueue &CurQueue, LiveInterval *LI); [all …]
|
/external/swiftshader/third_party/llvm-7.0/llvm/include/llvm/CodeGen/ |
D | LiveIntervals.h | 69 IndexedMap<LiveInterval*, VirtReg2IndexFunctor> VirtRegIntervals; 115 LiveInterval &getInterval(unsigned Reg) { in getInterval() 122 const LiveInterval &getInterval(unsigned Reg) const { in getInterval() 131 LiveInterval &createEmptyInterval(unsigned Reg) { in createEmptyInterval() 138 LiveInterval &createAndComputeVirtRegInterval(unsigned Reg) { in createAndComputeVirtRegInterval() 139 LiveInterval &LI = createEmptyInterval(Reg); in createAndComputeVirtRegInterval() 152 LiveInterval::Segment addSegmentToEndOfBlock(unsigned reg, 161 bool shrinkToUses(LiveInterval *li, 170 void shrinkToUses(LiveInterval::SubRange &SR, unsigned Reg); 205 LLVM_ATTRIBUTE_UNUSED void pruneValue(LiveInterval &, SlotIndex, in pruneValue() argument [all …]
|
D | LiveRangeEdit.h | 71 LiveInterval *Parent; 107 bool foldAsLoad(LiveInterval *LI, SmallVectorImpl<MachineInstr *> &Dead); 109 using ToShrinkSet = SetVector<LiveInterval *, SmallVector<LiveInterval *, 8>, 110 SmallPtrSet<LiveInterval *, 8>>; 122 bool useIsKill(const LiveInterval &LI, const MachineOperand &MO) const; 125 LiveInterval &createEmptyIntervalFrom(unsigned OldReg, bool createSubRanges); 139 LiveRangeEdit(LiveInterval *parent, SmallVectorImpl<unsigned> &newRegs, 151 LiveInterval &getParent() const { in getParent() 185 LiveInterval &createEmptyInterval() { in createEmptyInterval()
|
D | LiveRegMatrix.h | 35 class LiveInterval; variable 108 InterferenceKind checkInterference(LiveInterval &VirtReg, unsigned PhysReg); 120 void assign(LiveInterval &VirtReg, unsigned PhysReg); 125 void unassign(LiveInterval &VirtReg); 140 bool checkRegMaskInterference(LiveInterval &VirtReg, unsigned PhysReg = 0); 145 bool checkRegUnitInterference(LiveInterval &VirtReg, unsigned PhysReg);
|
/external/swiftshader/third_party/llvm-7.0/llvm/lib/CodeGen/ |
D | RenameIndependentSubregs.cpp | 69 LiveInterval::SubRange *SR; 72 SubRangeInfo(LiveIntervals &LIS, LiveInterval::SubRange &SR, in SubRangeInfo() 78 bool renameComponents(LiveInterval &LI) const; 85 LiveInterval &LI) const; 91 const SmallVectorImpl<LiveInterval*> &Intervals) const; 96 const SmallVectorImpl<LiveInterval*> &Intervals) const; 101 const SmallVectorImpl<LiveInterval*> &Intervals) const; 122 bool RenameIndependentSubregs::renameComponents(LiveInterval &LI) const { in INITIALIZE_PASS_DEPENDENCY() 135 SmallVector<LiveInterval*, 4> Intervals; in INITIALIZE_PASS_DEPENDENCY() 143 LiveInterval &NewLI = LIS->createEmptyInterval(NewVReg); in INITIALIZE_PASS_DEPENDENCY() [all …]
|
D | RegAllocBasic.cpp | 49 bool operator()(LiveInterval *A, LiveInterval *B) const { in operator ()() 69 std::priority_queue<LiveInterval*, std::vector<LiveInterval*>, 92 void enqueue(LiveInterval *LI) override { in enqueue() 96 LiveInterval *dequeue() override { in dequeue() 99 LiveInterval *LI = Queue.top(); in dequeue() 104 unsigned selectOrSplit(LiveInterval &VirtReg, 118 bool spillInterferences(LiveInterval &VirtReg, unsigned PhysReg, 146 LiveInterval &LI = LIS->getInterval(VirtReg); in INITIALIZE_PASS_DEPENDENCY() 165 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_WillShrinkVirtReg() 205 bool RABasic::spillInterferences(LiveInterval &VirtReg, unsigned PhysReg, in spillInterferences() [all …]
|
D | LiveRangeEdit.cpp | 34 LiveInterval &LiveRangeEdit::createEmptyIntervalFrom(unsigned OldReg, in createEmptyIntervalFrom() 40 LiveInterval &LI = LIS.createEmptyInterval(VReg); in createEmptyIntervalFrom() 47 LiveInterval &OldLI = LIS.getInterval(OldReg); in createEmptyIntervalFrom() 49 for (LiveInterval::SubRange &S : OldLI.subranges()) in createEmptyIntervalFrom() 87 LiveInterval &OrigLI = LIS.getInterval(Original); in scanRemattable() 124 LiveInterval &li = LIS.getInterval(MO.getReg()); in allUsesAvailableAt() 186 bool LiveRangeEdit::foldAsLoad(LiveInterval *LI, in foldAsLoad() 242 bool LiveRangeEdit::useIsKill(const LiveInterval &LI, in useIsKill() 251 for (const LiveInterval::SubRange &S : LI.subranges()) { in useIsKill() 295 LiveInterval &OrigLI = LIS.getInterval(Original); in eliminateDeadDef() [all …]
|
D | RegAllocGreedy.cpp | 156 using SmallLISet = SmallPtrSet<LiveInterval *, 4>; 256 LiveRangeStage getStage(const LiveInterval &VirtReg) const { in getStage() 260 void setStage(const LiveInterval &VirtReg, LiveRangeStage Stage) { in setStage() 413 SmallSetVector<LiveInterval *, 8> SetOfBrokenHints; 425 void enqueue(LiveInterval *LI) override; 426 LiveInterval *dequeue() override; 427 unsigned selectOrSplit(LiveInterval&, SmallVectorImpl<unsigned>&) override; 428 void aboutToRemoveInterval(LiveInterval &) override; 441 unsigned selectOrSplitImpl(LiveInterval &, SmallVectorImpl<unsigned> &, 447 void enqueue(PQueue &CurQueue, LiveInterval *LI); [all …]
|