Home
last modified time | relevance | path

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

12

/freebsd-12.1/contrib/llvm/include/llvm/CodeGen/
H A DLiveIntervals.h115 LiveInterval &getInterval(unsigned Reg) { in getInterval()
122 const LiveInterval &getInterval(unsigned Reg) const { in getInterval()
131 LiveInterval &createEmptyInterval(unsigned Reg) { in createEmptyInterval()
139 LiveInterval &LI = createEmptyInterval(Reg); in createAndComputeVirtRegInterval()
161 bool shrinkToUses(LiveInterval *li,
377 bool checkRegMaskInterference(LiveInterval &LI,
428 void removeVRegDefAt(LiveInterval &LI, SlotIndex Pos);
431 void splitSeparateComponents(LiveInterval &LI,
453 bool computeDeadValues(LiveInterval &LI,
456 static LiveInterval* createInterval(unsigned Reg);
[all …]
H A 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()
H A 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);
H A DLiveIntervalUnion.h47 using LiveSegments = IntervalMap<SlotIndex, LiveInterval*>;
91 void unify(LiveInterval &VirtReg, const LiveRange &Range);
94 void extract(LiveInterval &VirtReg, const LiveRange &Range);
114 SmallVector<LiveInterval*,4> InterferingVRegs;
157 bool isSeenInterference(LiveInterval *VirtReg) const;
163 const SmallVectorImpl<LiveInterval*> &interferingVRegs() const { in interferingVRegs()
H A DCalcSpillWeights.h18 class LiveInterval; variable
68 void calculateSpillWeightAndHint(LiveInterval &li);
79 float futureWeight(LiveInterval &li, SlotIndex start, SlotIndex end);
93 float weightCalcHelper(LiveInterval &li, SlotIndex *start = nullptr,
H A DLiveStacks.h39 using SS2IntervalMap = std::unordered_map<int, LiveInterval>;
62 LiveInterval &getOrCreateInterval(int Slot, const TargetRegisterClass *RC);
64 LiveInterval &getInterval(int Slot) { in getInterval()
71 const LiveInterval &getInterval(int Slot) const { in getInterval()
H A DLiveInterval.h638 class LiveInterval : public LiveRange {
670 LiveInterval(unsigned Reg, float Weight) : reg(Reg), weight(Weight) {} in LiveInterval() function
672 ~LiveInterval() { in ~LiveInterval()
794 std::function<void(LiveInterval::SubRange&)> Apply);
796 bool operator<(const LiveInterval& other) const {
826 const LiveInterval::SubRange &SR) {
831 inline raw_ostream &operator<<(raw_ostream &OS, const LiveInterval &LI) {
937 void Distribute(LiveInterval &LI, LiveInterval *LIV[],
/freebsd-12.1/contrib/llvm/lib/CodeGen/
H A DRenameIndependentSubregs.cpp69 LiveInterval::SubRange *SR;
78 bool renameComponents(LiveInterval &LI) const;
85 LiveInterval &LI) const;
135 SmallVector<LiveInterval*, 4> Intervals; in INITIALIZE_PASS_DEPENDENCY()
157 LiveInterval &LI) const { in findComponents()
161 for (LiveInterval::SubRange &SR : LI.subranges()) { in findComponents()
186 const LiveInterval::SubRange &SR = *SRInfo.SR; in findComponents()
231 const LiveInterval::SubRange &SR = *SRInfo.SR; in rewriteOperands()
273 LiveInterval::SubRange &SR = *SRInfo.SR; in distribute()
306 LiveInterval &LI = *Intervals[I]; in computeMainRangesFixFlags()
[all …]
H A 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,
146 LiveInterval &LI = LIS->getInterval(VirtReg); in INITIALIZE_PASS_DEPENDENCY()
165 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_WillShrinkVirtReg()
209 SmallVector<LiveInterval*, 8> Intfs; in spillInterferences()
228 LiveInterval &Spill = *Intfs[i]; in spillInterferences()
[all …]
H A DLiveRangeEdit.cpp40 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()
319 LiveInterval &LI = LIS.getInterval(Reg); in eliminateDeadDef()
405 LiveInterval *LI = ToShrink.back(); in eliminateDeadDefs()
431 SmallVector<LiveInterval*, 8> SplitLIs; in eliminateDeadDefs()
437 for (const LiveInterval *SplitLI : SplitLIs) { in eliminateDeadDefs()
[all …]
H A DRegAllocGreedy.cpp425 void enqueue(LiveInterval *LI) override;
426 LiveInterval *dequeue() override;
448 LiveInterval *dequeue(PQueue &CurQueue);
467 bool shouldEvict(LiveInterval &A, bool, LiveInterval &B, bool);
517 void tryHintRecoloring(LiveInterval &);
634 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_CanEraseVirtReg()
653 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_WillShrinkVirtReg()
1049 SmallVector<LiveInterval*, 8> Intfs; in evictInterference()
1063 LiveInterval *Intf = Intfs[i]; in evictInterference()
2926 LiveInterval &LI = LIS->getInterval(Reg); in tryHintRecoloring()
[all …]
H A DSplitKit.h60 SlotIndex computeLastInsertPoint(const LiveInterval &CurLI,
67 SlotIndex getLastInsertPoint(const LiveInterval &CurLI, in getLastInsertPoint()
78 MachineBasicBlock::iterator getLastInsertPointIter(const LiveInterval &CurLI,
138 const LiveInterval *CurLI = nullptr;
174 void analyze(const LiveInterval *li);
186 const LiveInterval &getParent() const { return *CurLI; } in getParent()
220 unsigned countLiveBlocks(const LiveInterval *li) const;
352 LiveInterval::SubRange &getSubRangeForMask(LaneBitmask LM, LiveInterval &LI);
360 void addDeadDef(LiveInterval &LI, VNInfo *VNI, bool Original);
441 unsigned SubIdx, LiveInterval &DestLI, bool Late, SlotIndex Def);
H A DRegAllocBase.h45 class LiveInterval; variable
96 virtual void enqueue(LiveInterval *LI) = 0;
99 virtual LiveInterval *dequeue() = 0;
105 virtual unsigned selectOrSplit(LiveInterval &VirtReg,
113 virtual void aboutToRemoveInterval(LiveInterval &LI) {} in aboutToRemoveInterval()
H A DRegisterCoalescer.cpp222 bool hasOtherReachingDefs(LiveInterval &IntA, LiveInterval &IntB,
286 void shrinkToUses(LiveInterval *LI, in shrinkToUses()
538 LiveInterval &IntA = in adjustCopiesBackFrom()
540 LiveInterval &IntB = in adjustCopiesBackFrom()
584 LiveInterval::iterator ValS = in adjustCopiesBackFrom()
675 LiveInterval::iterator BI = in hasOtherReachingDefs()
721 LiveInterval &IntA = in removeCopyByCommutingDef()
723 LiveInterval &IntB = in removeCopyByCommutingDef()
913 (LiveInterval::SubRange &SR) { in removeCopyByCommutingDef()
1008 LiveInterval &IntA = in removePartialRedundancy()
[all …]
H A DSplitKit.cpp320 LiveInterval *li = const_cast<LiveInterval*>(cli); in countLiveBlocks()
321 LiveInterval::iterator LVI = li->begin(); in countLiveBlocks()
322 LiveInterval::iterator LVE = li->end(); in countLiveBlocks()
950 LiveInterval *Parent = &Edit->getParent(); in computeRedundantBackCopies()
1005 LiveInterval *Parent = &Edit->getParent(); in hoistCopies()
1249 LiveInterval &PLI = Edit->getParent(); in extendPHIRange()
1398 LiveInterval &LI = LIS.getInterval(R); in rewriteAssigned()
1410 LiveInterval *LI = &LIS.getInterval(*I); in deleteRematVictims()
1517 LiveInterval &LI = LIS.getInterval(Reg); in finish()
1535 SmallVector<LiveInterval*, 8> SplitLIs; in finish()
[all …]
H A DStackSlotColoring.cpp68 std::vector<LiveInterval*> SSIntervals;
95 SmallVector<SmallVector<LiveInterval*,4>, 16> Assignments;
120 bool OverlapWithAssignments(LiveInterval *li, int Color) const;
121 int ColorSlot(LiveInterval *li);
147 bool operator()(LiveInterval* LHS, LiveInterval* RHS) const { in operator ()()
175 LiveInterval &li = LS->getInterval(FI); in ScanForSpillSlotRefs()
223 LiveInterval &li = I->second; in InitializeSlots()
261 LiveInterval *OtherLI = OtherLIs[i]; in OverlapWithAssignments()
269 int StackSlotColoring::ColorSlot(LiveInterval *li) { in ColorSlot()
333 LiveInterval *li = SSIntervals[i]; in ColorSlots()
[all …]
H A DInlineSpiller.cpp170 LiveInterval *StackInt;
208 bool isSnippet(const LiveInterval &SnipLI);
217 void markValueUsed(LiveInterval*, VNInfo*);
377 LiveInterval &SrcLI = LIS.getInterval(SrcReg); in hoistSpillInsideBB()
388 LiveInterval &OrigLI = LIS.getInterval(Original); in hoistSpillInsideBB()
429 LiveInterval *LI; in eliminateRedundantSpills()
613 LiveInterval &LI = LIS.getInterval(Reg); in reMaterializeAll()
634 LiveInterval &LI = LIS.getInterval(Reg); in reMaterializeAll()
930 LiveInterval &OldLI = LIS.getInterval(Reg); in spillAroundUses()
1152 LiveInterval &LI = LIS.getInterval(SibReg); in isSpillCandBB()
[all …]
H A DLiveRegMatrix.cpp81 LiveInterval &VRegInterval, unsigned PhysReg, in foreachUnit()
87 for (LiveInterval::SubRange &S : VRegInterval.subranges()) { in foreachUnit()
104 void LiveRegMatrix::assign(LiveInterval &VirtReg, unsigned PhysReg) { in assign()
121 void LiveRegMatrix::unassign(LiveInterval &VirtReg) { in unassign()
146 bool LiveRegMatrix::checkRegMaskInterference(LiveInterval &VirtReg, in checkRegMaskInterference()
164 bool LiveRegMatrix::checkRegUnitInterference(LiveInterval &VirtReg, in checkRegUnitInterference()
186 LiveRegMatrix::checkInterference(LiveInterval &VirtReg, unsigned PhysReg) { in checkInterference()
H A DLiveIntervals.cpp191 return new LiveInterval(reg, Weight); in createInterval()
352 iterator_range<LiveInterval::vni_iterator> VNIs) { in createSegmentsForValues()
382 const LiveInterval &LI = getInterval(Reg); in extendSegmentsToUses()
442 bool LiveIntervals::shrinkToUses(LiveInterval *li, in shrinkToUses()
450 for (LiveInterval::SubRange &S : li->subranges()) { in shrinkToUses()
695 const LiveInterval &LI = getInterval(Reg); in addKillFlags()
870 LiveInterval& Interval = createEmptyInterval(reg); in addSegmentToEndOfBlock()
995 LiveInterval &LI = LIS.getInterval(Reg); in updateAllRanges()
1471 LiveInterval::iterator LII = LR.find(endIdx); in repairOldRegInRange()
1600 LiveInterval &LI = getInterval(Reg); in repairIntervalsInRange()
[all …]
H A DLiveIntervalUnion.cpp30 void LiveIntervalUnion::unify(LiveInterval &VirtReg, const LiveRange &Range) { in unify()
57 void LiveIntervalUnion::extract(LiveInterval &VirtReg, const LiveRange &Range) { in extract()
105 bool LiveIntervalUnion::Query::isSeenInterference(LiveInterval *VirtReg) const { in isSeenInterference()
141 LiveInterval *RecentReg = nullptr; in collectInterferingVRegs()
148 LiveInterval *VReg = LiveUnionI.value(); in collectInterferingVRegs()
H A DVirtRegMap.cpp189 void addLiveInsForSubRanges(const LiveInterval &LI, unsigned PhysReg) const;
268 void VirtRegRewriter::addLiveInsForSubRanges(const LiveInterval &LI, in addLiveInsForSubRanges()
274 std::pair<const LiveInterval::SubRange *, LiveInterval::const_iterator>; in addLiveInsForSubRanges()
279 for (const LiveInterval::SubRange &SR : LI.subranges()) { in addLiveInsForSubRanges()
296 const LiveInterval::SubRange *SR = RangeIterPair.first; in addLiveInsForSubRanges()
297 LiveInterval::const_iterator &SRI = RangeIterPair.second; in addLiveInsForSubRanges()
319 LiveInterval &LI = LIS->getInterval(VirtReg); in addMBBLiveIns()
358 const LiveInterval &LI = LIS->getInterval(Reg); in readsUndefSubreg()
369 for (const LiveInterval::SubRange &SR : LI.subranges()) { in readsUndefSubreg()
H A DCalcSpillWeights.cpp85 static bool isRematerializable(const LiveInterval &LI, in isRematerializable()
91 for (LiveInterval::const_vni_iterator I = LI.vni_begin(), E = LI.vni_end(); in isRematerializable()
121 const LiveInterval &SrcLI = LIS.getInterval(Reg); in isRematerializable()
138 void VirtRegAuxInfo::calculateSpillWeightAndHint(LiveInterval &li) { in calculateSpillWeightAndHint()
146 float VirtRegAuxInfo::futureWeight(LiveInterval &li, SlotIndex start, in futureWeight()
151 float VirtRegAuxInfo::weightCalcHelper(LiveInterval &li, SlotIndex *start, in weightCalcHelper()
H A DLiveRangeCalc.h175 LiveInterval *LI = nullptr);
231 void calculate(LiveInterval &LI, bool TrackSubRegs);
236 void constructMainRangeFromSubranges(LiveInterval &LI);
H A DLiveInterval.cpp851 void LiveInterval::freeSubRange(SubRange *S) { in freeSubRange()
856 void LiveInterval::removeEmptySubRanges() { in removeEmptySubRanges()
875 void LiveInterval::clearSubRanges() { in clearSubRanges()
913 unsigned LiveInterval::getSize() const { in getSize()
984 void LiveInterval::SubRange::print(raw_ostream &OS) const { in print()
989 void LiveInterval::print(raw_ostream &OS) const { in print()
1003 LLVM_DUMP_METHOD void LiveInterval::SubRange::dump() const { in dump()
1007 LLVM_DUMP_METHOD void LiveInterval::dump() const { in dump()
1305 void ConnectedVNInfoEqClasses::Distribute(LiveInterval &LI, LiveInterval *LIV[], in Distribute()
1336 SmallVector<LiveInterval::SubRange*, 8> SubRanges; in Distribute()
[all …]
/freebsd-12.1/contrib/llvm/lib/Target/WebAssembly/
H A DWebAssemblyRegColoring.cpp97 SmallVector<LiveInterval *, 0> SortedIntervals; in runOnMachineFunction()
109 LiveInterval *LI = &Liveness->getInterval(VReg); in runOnMachineFunction()
121 llvm::sort(SortedIntervals, [MRI](LiveInterval *LHS, LiveInterval *RHS) { in runOnMachineFunction()
133 SmallVector<SmallVector<LiveInterval *, 4>, 16> Assignments( in runOnMachineFunction()
138 LiveInterval *LI = SortedIntervals[i]; in runOnMachineFunction()
148 for (LiveInterval *OtherLI : Assignments[C]) in runOnMachineFunction()

12