| /freebsd-12.1/contrib/llvm/include/llvm/CodeGen/ |
| H A D | LiveIntervals.h | 115 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 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()
|
| H A 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);
|
| H A D | LiveIntervalUnion.h | 47 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 D | CalcSpillWeights.h | 18 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 D | LiveStacks.h | 39 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 D | LiveInterval.h | 638 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 D | RenameIndependentSubregs.cpp | 69 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 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, 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 D | LiveRangeEdit.cpp | 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() 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 D | RegAllocGreedy.cpp | 425 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 D | SplitKit.h | 60 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 D | RegAllocBase.h | 45 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 D | RegisterCoalescer.cpp | 222 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 D | SplitKit.cpp | 320 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 D | StackSlotColoring.cpp | 68 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 D | InlineSpiller.cpp | 170 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 D | LiveRegMatrix.cpp | 81 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 D | LiveIntervals.cpp | 191 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 D | LiveIntervalUnion.cpp | 30 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 D | VirtRegMap.cpp | 189 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 D | CalcSpillWeights.cpp | 85 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 D | LiveRangeCalc.h | 175 LiveInterval *LI = nullptr); 231 void calculate(LiveInterval &LI, bool TrackSubRegs); 236 void constructMainRangeFromSubranges(LiveInterval &LI);
|
| H A D | LiveInterval.cpp | 851 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 D | WebAssemblyRegColoring.cpp | 97 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()
|