| /freebsd-13.1/contrib/llvm-project/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 | 48 bool operator()(LiveInterval *A, LiveInterval *B) const { in operator ()() 68 std::priority_queue<LiveInterval*, std::vector<LiveInterval*>, 91 void enqueueImpl(LiveInterval *LI) override { in enqueueImpl() 95 LiveInterval *dequeue() override { in dequeue() 98 LiveInterval *LI = Queue.top(); in dequeue() 103 MCRegister selectOrSplit(LiveInterval &VirtReg, 150 LiveInterval &LI = LIS->getInterval(VirtReg); in INITIALIZE_PASS_DEPENDENCY() 169 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_WillShrinkVirtReg() 215 SmallVector<LiveInterval*, 8> Intfs; in spillInterferences() 222 LiveInterval *Intf = Q.interferingVRegs()[i - 1]; in spillInterferences() [all …]
|
| H A D | RegAllocBase.h | 45 class LiveInterval; variable 99 virtual void enqueueImpl(LiveInterval *LI) = 0; 102 void enqueue(LiveInterval *LI); 105 virtual LiveInterval *dequeue() = 0; 111 virtual MCRegister selectOrSplit(LiveInterval &VirtReg, 119 virtual void aboutToRemoveInterval(LiveInterval &LI) {} in aboutToRemoveInterval()
|
| H A D | SplitKit.h | 61 SlotIndex computeLastInsertPoint(const LiveInterval &CurLI, 68 SlotIndex getLastInsertPoint(const LiveInterval &CurLI, in getLastInsertPoint() 142 const LiveInterval *CurLI = nullptr; 178 void analyze(const LiveInterval *li); 190 const LiveInterval &getParent() const { return *CurLI; } in getParent() 224 unsigned countLiveBlocks(const LiveInterval *li) const; 361 LiveInterval::SubRange &getSubRangeForMaskExact(LaneBitmask LM, 362 LiveInterval &LI); 368 LiveInterval::SubRange &getSubRangeForMask(LaneBitmask LM, LiveInterval &LI); 376 void addDeadDef(LiveInterval &LI, VNInfo *VNI, bool Original); [all …]
|
| H A D | LiveRangeEdit.cpp | 39 LiveInterval &LI = LIS.createEmptyInterval(VReg); in createEmptyIntervalFrom() 46 LiveInterval &OldLI = LIS.getInterval(OldReg); in createEmptyIntervalFrom() 48 for (LiveInterval::SubRange &S : OldLI.subranges()) in createEmptyIntervalFrom() 86 LiveInterval &OrigLI = LIS.getInterval(Original); in scanRemattable() 124 LiveInterval &li = LIS.getInterval(MO.getReg()); in allUsesAvailableAt() 186 bool LiveRangeEdit::foldAsLoad(LiveInterval *LI, in foldAsLoad() 322 LiveInterval &LI = LIS.getInterval(Reg); in eliminateDeadDef() 408 LiveInterval *LI = ToShrink.back(); in eliminateDeadDefs() 434 SmallVector<LiveInterval*, 8> SplitLIs; in eliminateDeadDefs() 440 for (const LiveInterval *SplitLI : SplitLIs) { in eliminateDeadDefs() [all …]
|
| H A D | RegAllocGreedy.cpp | 424 void enqueueImpl(LiveInterval *LI) override; 425 LiveInterval *dequeue() override; 426 MCRegister selectOrSplit(LiveInterval &, 453 LiveInterval *dequeue(PQueue &CurQueue); 472 bool shouldEvict(LiveInterval &A, bool, LiveInterval &B, bool) const; 527 void tryHintRecoloring(LiveInterval &); 690 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_CanEraseVirtReg() 709 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_WillShrinkVirtReg() 1125 SmallVector<LiveInterval*, 8> Intfs; in evictInterference() 1138 for (LiveInterval *Intf : Intfs) { in evictInterference() [all …]
|
| H A D | SplitKit.cpp | 321 LiveInterval *li = const_cast<LiveInterval*>(cli); in countLiveBlocks() 322 LiveInterval::iterator LVI = li->begin(); in countLiveBlocks() 323 LiveInterval::iterator LVE = li->end(); in countLiveBlocks() 956 LiveInterval *Parent = &Edit->getParent(); in computeRedundantBackCopies() 1009 LiveInterval *Parent = &Edit->getParent(); in hoistCopies() 1256 LiveInterval &PLI = Edit->getParent(); in extendPHIRange() 1403 LiveInterval &LI = LIS.getInterval(R); in rewriteAssigned() 1415 LiveInterval *LI = &LIS.getInterval(R); in deleteRematVictims() 1522 LiveInterval &LI = LIS.getInterval(Reg); in finish() 1540 SmallVector<LiveInterval*, 8> SplitLIs; in finish() [all …]
|
| H A D | LiveRegMatrix.cpp | 81 LiveInterval &VRegInterval, MCRegister PhysReg, in foreachUnit() 87 for (LiveInterval::SubRange &S : VRegInterval.subranges()) { in foreachUnit() 104 void LiveRegMatrix::assign(LiveInterval &VirtReg, MCRegister 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, MCRegister PhysReg) { in checkInterference() 240 LiveInterval *VRegInterval = nullptr; in getOneVReg()
|
| 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 ()() 171 LiveInterval &li = LS->getInterval(FI); in ScanForSpillSlotRefs() 220 LiveInterval &li = I->second; in InitializeSlots() 258 LiveInterval *OtherLI = OtherLIs[i]; in OverlapWithAssignments() 266 int StackSlotColoring::ColorSlot(LiveInterval *li) { in ColorSlot() 330 LiveInterval *li = SSIntervals[i]; in ColorSlots() [all …]
|
| H A D | RegisterCoalescer.cpp | 290 bool hasOtherReachingDefs(LiveInterval &IntA, LiveInterval &IntB, 354 void shrinkToUses(LiveInterval *LI, in shrinkToUses() 360 SmallVector<LiveInterval*, 8> SplitLIs; in shrinkToUses() 630 LiveInterval &IntA = in adjustCopiesBackFrom() 632 LiveInterval &IntB = in adjustCopiesBackFrom() 676 LiveInterval::iterator ValS = in adjustCopiesBackFrom() 818 LiveInterval &IntA = in removeCopyByCommutingDef() 820 LiveInterval &IntB = in removeCopyByCommutingDef() 1117 LiveInterval &IntA = in removePartialRedundancy() 1119 LiveInterval &IntB = in removePartialRedundancy() [all …]
|
| H A D | InlineSpiller.cpp | 174 LiveInterval *StackInt; 216 bool isSnippet(const LiveInterval &SnipLI); 225 void markValueUsed(LiveInterval*, VNInfo*); 394 LiveInterval &SrcLI = LIS.getInterval(SrcReg); in hoistSpillInsideBB() 405 LiveInterval &OrigLI = LIS.getInterval(Original); in hoistSpillInsideBB() 453 LiveInterval *LI; in eliminateRedundantSpills() 678 LiveInterval &LI = LIS.getInterval(Reg); in reMaterializeAll() 699 LiveInterval &LI = LIS.getInterval(Reg); in reMaterializeAll() 1038 LiveInterval &OldLI = LIS.getInterval(Reg); in spillAroundUses() 1262 LiveInterval &LI = LIS.getInterval(SibReg); in isSpillCandBB() [all …]
|
| H A D | LiveIntervalUnion.cpp | 29 void LiveIntervalUnion::unify(LiveInterval &VirtReg, const LiveRange &Range) { in unify() 56 void LiveIntervalUnion::extract(LiveInterval &VirtReg, const LiveRange &Range) { in extract() 102 LiveInterval *LiveIntervalUnion::getOneVReg() const { in getOneVReg() 114 bool LiveIntervalUnion::Query::isSeenInterference(LiveInterval *VirtReg) const { in isSeenInterference() 153 LiveInterval *RecentReg = nullptr; in collectInterferingVRegs() 160 LiveInterval *VReg = LiveUnionI.value(); in collectInterferingVRegs()
|
| H A D | CalcSpillWeights.cpp | 80 static bool isRematerializable(const LiveInterval &LI, const LiveIntervals &LIS, in isRematerializable() 85 for (LiveInterval::const_vni_iterator I = LI.vni_begin(), E = LI.vni_end(); in isRematerializable() 113 const LiveInterval &SrcLI = LIS.getInterval(Reg); in isRematerializable() 129 bool VirtRegAuxInfo::isLiveAtStatepointVarArg(LiveInterval &LI) { in isLiveAtStatepointVarArg() 139 void VirtRegAuxInfo::calculateSpillWeightAndHint(LiveInterval &LI) { in calculateSpillWeightAndHint() 147 float VirtRegAuxInfo::futureWeight(LiveInterval &LI, SlotIndex Start, in futureWeight() 152 float VirtRegAuxInfo::weightCalcHelper(LiveInterval &LI, SlotIndex *Start, in weightCalcHelper() 169 const LiveInterval &OrigInt = LIS.getInterval(Original); in weightCalcHelper()
|
| H A D | LiveIntervalCalc.cpp | 52 void LiveIntervalCalc::calculate(LiveInterval &LI, bool TrackSubRegs) { in calculate() 81 [&MO, Indexes, Alloc](LiveInterval::SubRange &SR) { in calculate() 103 for (LiveInterval::SubRange &S : LI.subranges()) { in calculate() 116 void LiveIntervalCalc::constructMainRangeFromSubranges(LiveInterval &LI) { in constructMainRangeFromSubranges() 123 for (const LiveInterval::SubRange &SR : LI.subranges()) { in constructMainRangeFromSubranges() 146 LaneBitmask Mask, LiveInterval *LI) { in extendToUses()
|
| H A D | LiveIntervals.cpp | 191 return new LiveInterval(reg, Weight); in createInterval() 208 LiveInterval &LI = createEmptyInterval(Reg); in computeVirtRegs() 211 SmallVector<LiveInterval*, 8> SplitLIs; in computeVirtRegs() 396 const LiveInterval &LI = getInterval(Reg); in extendSegmentsToUses() 456 bool LiveIntervals::shrinkToUses(LiveInterval *li, in shrinkToUses() 712 const LiveInterval &LI = getInterval(Reg); in addKillFlags() 1034 LiveInterval &LI = LIS.getInterval(Reg); in updateAllRanges() 1559 LiveInterval &LI = getInterval(Reg); in handleMoveIntoNewBundle() 1572 LiveInterval::iterator LII = LR.find(EndIdx); in repairOldRegInRange() 1700 LiveInterval &LI = getInterval(Reg); in repairIntervalsInRange() [all …]
|
| H A D | VirtRegMap.cpp | 198 void addLiveInsForSubRanges(const LiveInterval &LI, MCRegister PhysReg) const; 294 void VirtRegRewriter::addLiveInsForSubRanges(const LiveInterval &LI, in addLiveInsForSubRanges() 300 std::pair<const LiveInterval::SubRange *, LiveInterval::const_iterator>; in addLiveInsForSubRanges() 305 for (const LiveInterval::SubRange &SR : LI.subranges()) { in addLiveInsForSubRanges() 322 const LiveInterval::SubRange *SR = RangeIterPair.first; in addLiveInsForSubRanges() 323 LiveInterval::const_iterator &SRI = RangeIterPair.second; in addLiveInsForSubRanges() 345 LiveInterval &LI = LIS->getInterval(VirtReg); in addMBBLiveIns() 389 const LiveInterval &LI = LIS->getInterval(Reg); in readsUndefSubreg() 400 for (const LiveInterval::SubRange &SR : LI.subranges()) { in readsUndefSubreg()
|
| /freebsd-13.1/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
| H A D | LiveIntervals.h | 114 LiveInterval &getInterval(Register Reg) { in getInterval() 121 const LiveInterval &getInterval(Register Reg) const { in getInterval() 131 LiveInterval &createEmptyInterval(Register Reg) { in createEmptyInterval() 139 LiveInterval &LI = createEmptyInterval(Reg); in createAndComputeVirtRegInterval() 161 bool shrinkToUses(LiveInterval *li, 377 bool checkRegMaskInterference(LiveInterval &LI, 437 void removeVRegDefAt(LiveInterval &LI, SlotIndex Pos); 440 void splitSeparateComponents(LiveInterval &LI, 462 bool computeDeadValues(LiveInterval &LI, 465 static LiveInterval *createInterval(Register Reg); [all …]
|
| H A D | LiveRangeEdit.h | 71 LiveInterval *Parent; 102 bool foldAsLoad(LiveInterval *LI, SmallVectorImpl<MachineInstr *> &Dead); 104 using ToShrinkSet = SetVector<LiveInterval *, SmallVector<LiveInterval *, 8>, 105 SmallPtrSet<LiveInterval *, 8>>; 117 bool useIsKill(const LiveInterval &LI, const MachineOperand &MO) const; 120 LiveInterval &createEmptyIntervalFrom(Register OldReg, bool createSubRanges); 134 LiveRangeEdit(LiveInterval *parent, SmallVectorImpl<Register> &newRegs, 146 LiveInterval &getParent() const { in getParent() 180 LiveInterval &createEmptyInterval() { in createEmptyInterval()
|
| H A D | LiveRegMatrix.h | 34 class LiveInterval; variable 107 InterferenceKind checkInterference(LiveInterval &VirtReg, MCRegister PhysReg); 119 void assign(LiveInterval &VirtReg, MCRegister PhysReg); 124 void unassign(LiveInterval &VirtReg); 139 bool checkRegMaskInterference(LiveInterval &VirtReg, 145 bool checkRegUnitInterference(LiveInterval &VirtReg, MCRegister PhysReg);
|
| H A D | CalcSpillWeights.h | 17 class LiveInterval; variable 55 bool isLiveAtStatepointVarArg(LiveInterval &LI); 66 void calculateSpillWeightAndHint(LiveInterval &LI); 77 float futureWeight(LiveInterval &LI, SlotIndex Start, SlotIndex End); 96 float weightCalcHelper(LiveInterval &LI, SlotIndex *Start = nullptr,
|
| H A D | LiveIntervalUnion.h | 46 using LiveSegments = IntervalMap<SlotIndex, LiveInterval*>; 91 void unify(LiveInterval &VirtReg, const LiveRange &Range); 94 void extract(LiveInterval &VirtReg, const LiveRange &Range); 108 LiveInterval *getOneVReg() const; 117 Optional<SmallVector<LiveInterval *, 4>> InterferingVRegs; 160 bool isSeenInterference(LiveInterval *VirtReg) const; 166 const SmallVectorImpl<LiveInterval*> &interferingVRegs() const { in interferingVRegs()
|
| 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 | LiveIntervalCalc.h | 40 LiveInterval *LI = nullptr); 61 void calculate(LiveInterval &LI, bool TrackSubRegs); 66 void constructMainRangeFromSubranges(LiveInterval &LI);
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/Target/WebAssembly/ |
| H A D | WebAssemblyRegColoring.cpp | 96 SmallVector<LiveInterval *, 0> SortedIntervals; in runOnMachineFunction() 108 LiveInterval *LI = &Liveness->getInterval(VReg); in runOnMachineFunction() 120 llvm::sort(SortedIntervals, [MRI](LiveInterval *LHS, LiveInterval *RHS) { in runOnMachineFunction() 132 SmallVector<SmallVector<LiveInterval *, 4>, 16> Assignments( in runOnMachineFunction() 137 LiveInterval *LI = SortedIntervals[I]; in runOnMachineFunction() 147 for (LiveInterval *OtherLI : Assignments[C]) in runOnMachineFunction()
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
| H A D | GCNNSAReassign.cpp | 83 bool tryAssignRegisters(SmallVectorImpl<LiveInterval *> &Intervals, 88 bool scavengeRegs(SmallVectorImpl<LiveInterval *> &Intervals) const; 107 GCNNSAReassign::tryAssignRegisters(SmallVectorImpl<LiveInterval *> &Intervals, in tryAssignRegisters() 141 GCNNSAReassign::scavengeRegs(SmallVectorImpl<LiveInterval *> &Intervals) const { in scavengeRegs() 278 SmallVector<LiveInterval *, 16> Intervals; in runOnMachineFunction() 284 LiveInterval *LI = &LIS->getInterval(Reg); in runOnMachineFunction()
|