Home
last modified time | relevance | path

Searched refs:LiveInterval (Results 1 – 25 of 142) sorted by relevance

123456

/external/swiftshader/third_party/LLVM/include/llvm/CodeGen/
DLiveIntervalAnalysis.h60 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/
DLiveRangeEdit.h55 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 …]
DRegAllocBase.h113 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 …]
DLiveInterval.cpp33 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 …]
DLiveIntervalUnion.h39 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 …]
DRegAllocBasic.cpp71 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 …]
DLiveIntervalUnion.cpp28 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 …]
DRegAllocGreedy.cpp138 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 …]
DRenderMachineFunction.h27 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 …]
DRegAllocLinearScan.cpp114 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 …]
DLiveRangeCalc.h74 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/
DLiveIntervalUnion.h35 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 …]
DLiveIntervalAnalysis.h67 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 …]
DLiveRegMatrix.h33 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);
DLiveRangeEdit.h61 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/
DRenameIndependentSubregs.cpp69 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 …]
DRegAllocBasic.cpp49 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 …]
DRegAllocGreedy.cpp113 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/
DLiveIntervals.h69 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 …]
DLiveRangeEdit.h71 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()
DLiveRegMatrix.h35 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/
DRenameIndependentSubregs.cpp69 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 …]
DRegAllocBasic.cpp49 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 …]
DLiveRangeEdit.cpp34 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 …]
DRegAllocGreedy.cpp156 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 …]

123456