/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.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 | 48 bool operator()(LiveInterval *A, LiveInterval *B) const { in operator ()() 68 std::priority_queue<LiveInterval*, std::vector<LiveInterval*>, 91 void enqueue(LiveInterval *LI) override { in enqueue() 95 LiveInterval *dequeue() override { in dequeue() 98 LiveInterval *LI = Queue.top(); in dequeue() 103 unsigned selectOrSplit(LiveInterval &VirtReg, 117 bool spillInterferences(LiveInterval &VirtReg, unsigned PhysReg, 145 LiveInterval &LI = LIS->getInterval(VirtReg); in INITIALIZE_PASS_DEPENDENCY() 164 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_WillShrinkVirtReg() 204 bool RABasic::spillInterferences(LiveInterval &VirtReg, unsigned PhysReg, in spillInterferences() [all …]
|
D | LiveRangeEdit.cpp | 33 LiveInterval &LiveRangeEdit::createEmptyIntervalFrom(unsigned OldReg, in createEmptyIntervalFrom() 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() 123 LiveInterval &li = LIS.getInterval(MO.getReg()); in allUsesAvailableAt() 185 bool LiveRangeEdit::foldAsLoad(LiveInterval *LI, in foldAsLoad() 243 bool LiveRangeEdit::useIsKill(const LiveInterval &LI, in useIsKill() 252 for (const LiveInterval::SubRange &S : LI.subranges()) { in useIsKill() 296 LiveInterval &OrigLI = LIS.getInterval(Original); in eliminateDeadDef() [all …]
|
D | RegAllocGreedy.cpp | 155 using SmallLISet = SmallPtrSet<LiveInterval *, 4>; 255 LiveRangeStage getStage(const LiveInterval &VirtReg) const { in getStage() 259 void setStage(const LiveInterval &VirtReg, LiveRangeStage Stage) { in setStage() 412 SmallSetVector<LiveInterval *, 8> SetOfBrokenHints; 424 void enqueue(LiveInterval *LI) override; 425 LiveInterval *dequeue() override; 426 unsigned selectOrSplit(LiveInterval&, SmallVectorImpl<unsigned>&) override; 427 void aboutToRemoveInterval(LiveInterval &) override; 440 unsigned selectOrSplitImpl(LiveInterval &, SmallVectorImpl<unsigned> &, 446 void enqueue(PQueue &CurQueue, LiveInterval *LI); [all …]
|
D | SplitKit.h | 59 SlotIndex computeLastInsertPoint(const LiveInterval &CurLI, 66 SlotIndex getLastInsertPoint(const LiveInterval &CurLI, in getLastInsertPoint() 77 MachineBasicBlock::iterator getLastInsertPointIter(const LiveInterval &CurLI, 137 const LiveInterval *CurLI = nullptr; 173 void analyze(const LiveInterval *li); 185 const LiveInterval &getParent() const { return *CurLI; } in getParent() 219 unsigned countLiveBlocks(const LiveInterval *li) const; 351 LiveInterval::SubRange &getSubRangeForMask(LaneBitmask LM, LiveInterval &LI); 359 void addDeadDef(LiveInterval &LI, VNInfo *VNI, bool Original); 440 unsigned SubIdx, LiveInterval &DestLI, bool Late, SlotIndex Def);
|
D | RegAllocBase.h | 44 class LiveInterval; variable 95 virtual void enqueue(LiveInterval *LI) = 0; 98 virtual LiveInterval *dequeue() = 0; 104 virtual unsigned selectOrSplit(LiveInterval &VirtReg, 112 virtual void aboutToRemoveInterval(LiveInterval &LI) {} in aboutToRemoveInterval()
|
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() 258 StackSlotColoring::OverlapWithAssignments(LiveInterval *li, int Color) const { in OverlapWithAssignments() 259 const SmallVectorImpl<LiveInterval *> &OtherLIs = Assignments[Color]; in OverlapWithAssignments() 261 LiveInterval *OtherLI = OtherLIs[i]; in OverlapWithAssignments() [all …]
|
D | SplitKit.cpp | 76 InsertPointAnalysis::computeLastInsertPoint(const LiveInterval &CurLI, in computeLastInsertPoint() 139 InsertPointAnalysis::getLastInsertPointIter(const LiveInterval &CurLI, in getLastInsertPointIter() 196 .shrinkToUses(const_cast<LiveInterval*>(CurLI)); in analyzeUses() 217 LiveInterval::const_iterator LVI = CurLI->begin(); in calcLiveBlockInfo() 218 LiveInterval::const_iterator LVE = CurLI->end(); in calcLiveBlockInfo() 316 unsigned SplitAnalysis::countLiveBlocks(const LiveInterval *cli) const { in countLiveBlocks() 319 LiveInterval *li = const_cast<LiveInterval*>(cli); in countLiveBlocks() 320 LiveInterval::iterator LVI = li->begin(); in countLiveBlocks() 321 LiveInterval::iterator LVE = li->end(); in countLiveBlocks() 342 const LiveInterval &Orig = LIS.getInterval(OrigReg); in isOriginalEndpoint() [all …]
|
D | InlineSpiller.cpp | 104 DenseMap<int, std::unique_ptr<LiveInterval>> StackSlotToOrigLI; 118 bool isSpillCandBB(LiveInterval &OrigLI, VNInfo &OrigVNI, 133 void runHoistSpills(LiveInterval &OrigLI, VNInfo &OrigVNI, 173 LiveInterval *StackInt; 211 bool isSnippet(const LiveInterval &SnipLI); 217 bool hoistSpillInsideBB(LiveInterval &SpillLI, MachineInstr &CopyMI); 218 void eliminateRedundantSpills(LiveInterval &LI, VNInfo *VNI); 220 void markValueUsed(LiveInterval*, VNInfo*); 222 bool reMaterializeFor(LiveInterval &, MachineInstr &MI); 274 bool InlineSpiller::isSnippet(const LiveInterval &SnipLI) { in isSnippet() [all …]
|
D | RegisterCoalescer.cpp | 232 bool isHighCostLiveInterval(LiveInterval &LI); 242 void mergeSubRangeInto(LiveInterval &LI, const LiveRange &ToMerge, 259 bool hasOtherReachingDefs(LiveInterval &IntA, LiveInterval &IntB, 297 void addUndefFlag(const LiveInterval &Int, SlotIndex UseIdx, 323 void shrinkToUses(LiveInterval *LI, in shrinkToUses() 329 SmallVector<LiveInterval*, 8> SplitLIs; in shrinkToUses() 589 LiveInterval &IntA = in adjustCopiesBackFrom() 591 LiveInterval &IntB = in adjustCopiesBackFrom() 611 LiveInterval::iterator BS = IntB.FindSegmentContaining(CopyIdx); in adjustCopiesBackFrom() 622 LiveInterval::iterator AS = IntA.FindSegmentContaining(CopyUseIdx); in adjustCopiesBackFrom() [all …]
|
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()
|
D | LiveIntervals.cpp | 188 LiveInterval* LiveIntervals::createInterval(unsigned reg) { in createInterval() 190 return new LiveInterval(reg, Weight); in createInterval() 194 bool LiveIntervals::computeVirtRegInterval(LiveInterval &LI) { in computeVirtRegInterval() 207 LiveInterval &LI = createEmptyInterval(Reg); in computeVirtRegs() 210 SmallVector<LiveInterval*, 8> SplitLIs; in computeVirtRegs() 356 iterator_range<LiveInterval::vni_iterator> VNIs) { in createSegmentsForValues() 373 auto getSubRange = [](const LiveInterval &I, LaneBitmask M) in extendSegmentsToUses() 377 for (const LiveInterval::SubRange &SR : I.subranges()) { in extendSegmentsToUses() 386 const LiveInterval &LI = getInterval(Reg); in extendSegmentsToUses() 446 bool LiveIntervals::shrinkToUses(LiveInterval *li, in shrinkToUses() [all …]
|
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() 104 bool LiveIntervalUnion::Query::isSeenInterference(LiveInterval *VirtReg) const { in isSeenInterference() 140 LiveInterval *RecentReg = nullptr; in collectInterferingVRegs() 147 LiveInterval *VReg = LiveUnionI.value(); in collectInterferingVRegs()
|
D | VirtRegMap.cpp | 187 void addLiveInsForSubRanges(const LiveInterval &LI, Register PhysReg) const; 266 void VirtRegRewriter::addLiveInsForSubRanges(const LiveInterval &LI, in addLiveInsForSubRanges() 272 std::pair<const LiveInterval::SubRange *, LiveInterval::const_iterator>; in addLiveInsForSubRanges() 277 for (const LiveInterval::SubRange &SR : LI.subranges()) { in addLiveInsForSubRanges() 294 const LiveInterval::SubRange *SR = RangeIterPair.first; in addLiveInsForSubRanges() 295 LiveInterval::const_iterator &SRI = RangeIterPair.second; in addLiveInsForSubRanges() 317 LiveInterval &LI = LIS->getInterval(VirtReg); in addMBBLiveIns() 356 const LiveInterval &LI = LIS->getInterval(Reg); in readsUndefSubreg() 367 for (const LiveInterval::SubRange &SR : LI.subranges()) { in readsUndefSubreg()
|
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()
|
D | LiveInterval.cpp | 848 void LiveInterval::freeSubRange(SubRange *S) { in freeSubRange() 853 void LiveInterval::removeEmptySubRanges() { in removeEmptySubRanges() 872 void LiveInterval::clearSubRanges() { in clearSubRanges() 883 static void stripValuesNotDefiningMask(unsigned Reg, LiveInterval::SubRange &SR, in stripValuesNotDefiningMask() 930 void LiveInterval::refineSubRanges( in refineSubRanges() 932 std::function<void(LiveInterval::SubRange &)> Apply, in refineSubRanges() 969 unsigned LiveInterval::getSize() const { in getSize() 976 void LiveInterval::computeSubRangeUndefs(SmallVectorImpl<SlotIndex> &Undefs, in computeSubRangeUndefs() 1040 void LiveInterval::SubRange::print(raw_ostream &OS) const { in print() 1045 void LiveInterval::print(raw_ostream &OS) const { in print() [all …]
|
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/CodeGen/ |
D | LiveIntervals.h | 68 IndexedMap<LiveInterval*, VirtReg2IndexFunctor> VirtRegIntervals; 114 LiveInterval &getInterval(Register Reg) { in getInterval() 121 const LiveInterval &getInterval(Register Reg) const { in getInterval() 131 LiveInterval &createEmptyInterval(Register Reg) { in createEmptyInterval() 138 LiveInterval &createAndComputeVirtRegInterval(Register 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 | 70 LiveInterval *Parent; 106 bool foldAsLoad(LiveInterval *LI, SmallVectorImpl<MachineInstr *> &Dead); 108 using ToShrinkSet = SetVector<LiveInterval *, SmallVector<LiveInterval *, 8>, 109 SmallPtrSet<LiveInterval *, 8>>; 121 bool useIsKill(const LiveInterval &LI, const MachineOperand &MO) const; 124 LiveInterval &createEmptyIntervalFrom(unsigned OldReg, bool createSubRanges); 138 LiveRangeEdit(LiveInterval *parent, SmallVectorImpl<unsigned> &newRegs, 150 LiveInterval &getParent() const { in getParent() 184 LiveInterval &createEmptyInterval() { in createEmptyInterval()
|
D | LiveRegMatrix.h | 34 class LiveInterval; variable 107 InterferenceKind checkInterference(LiveInterval &VirtReg, unsigned PhysReg); 119 void assign(LiveInterval &VirtReg, unsigned PhysReg); 124 void unassign(LiveInterval &VirtReg); 139 bool checkRegMaskInterference(LiveInterval &VirtReg, unsigned PhysReg = 0); 144 bool checkRegUnitInterference(LiveInterval &VirtReg, unsigned PhysReg);
|
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); 114 SmallVector<LiveInterval*,4> InterferingVRegs; 157 bool isSeenInterference(LiveInterval *VirtReg) const; 163 const SmallVectorImpl<LiveInterval*> &interferingVRegs() const { in interferingVRegs()
|
D | CalcSpillWeights.h | 17 class LiveInterval; variable 67 void calculateSpillWeightAndHint(LiveInterval &li); 78 float futureWeight(LiveInterval &li, SlotIndex start, SlotIndex end); 92 float weightCalcHelper(LiveInterval &li, SlotIndex *start = nullptr,
|
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()
|
D | LiveRangeCalc.h | 173 LiveInterval *LI = nullptr); 229 void calculate(LiveInterval &LI, bool TrackSubRegs); 234 void constructMainRangeFromSubranges(LiveInterval &LI);
|
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/WebAssembly/ |
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()
|
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/AMDGPU/ |
D | GCNNSAReassign.cpp | 88 bool tryAssignRegisters(SmallVectorImpl<LiveInterval *> &Intervals, 93 bool scavengeRegs(SmallVectorImpl<LiveInterval *> &Intervals) const; 112 GCNNSAReassign::tryAssignRegisters(SmallVectorImpl<LiveInterval *> &Intervals, in tryAssignRegisters() 146 GCNNSAReassign::scavengeRegs(SmallVectorImpl<LiveInterval *> &Intervals) const { in scavengeRegs() 275 SmallVector<LiveInterval *, 16> Intervals; in runOnMachineFunction() 281 LiveInterval *LI = &LIS->getInterval(Reg); in runOnMachineFunction()
|