| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | LiveInterval.cpp | 67 LiveRange *LR; 70 CalcLiveRangeUtilBase(LiveRange *LR) : LR(LR) {} in CalcLiveRangeUtilBase() 73 using Segment = LiveRange::Segment; 283 CalcLiveRangeUtilBase<CalcLiveRangeUtilVector, LiveRange::iterator, 284 LiveRange::Segments>; 288 CalcLiveRangeUtilVector(LiveRange *LR) : CalcLiveRangeUtilVectorBase(LR) {} in CalcLiveRangeUtilVector() 293 LiveRange::Segments &segmentsColl() { return LR->segments; } in segmentsColl() 309 CalcLiveRangeUtilBase<CalcLiveRangeUtilSet, LiveRange::SegmentSet::iterator, 310 LiveRange::SegmentSet>; 314 CalcLiveRangeUtilSet(LiveRange *LR) : CalcLiveRangeUtilSetBase(LR) {} in CalcLiveRangeUtilSet() [all …]
|
| H A D | LiveIntervals.cpp | 153 for (LiveRange *LR : RegUnitRanges) in clear() 190 if (LiveRange *LR = RegUnitRanges[Unit]) in print() 312 void LiveIntervals::computeRegUnitRange(LiveRange &LR, unsigned Unit) { in computeRegUnitRange() 374 LiveRange *LR = RegUnitRanges[Unit]; in computeLiveInRegUnits() 377 LR = RegUnitRanges[Unit] = new LiveRange(UseSegmentSetForPhysRegs); in computeLiveInRegUnits() 394 static void createSegmentsForValues(LiveRange &LR, in createSegmentsForValues() 400 LR.addSegment(LiveRange::Segment(Def, Def.getDeadSlot(), VNI)); in createSegmentsForValues() 404 void LiveIntervals::extendSegmentsToUses(LiveRange &Segments, in extendSegmentsToUses() 413 -> const LiveRange& { in extendSegmentsToUses() 426 const LiveRange &OldRange = getSubRange(LI, LaneMask); in extendSegmentsToUses() [all …]
|
| H A D | LiveRegMatrix.cpp | 118 TRI, VirtReg, PhysReg, [&](unsigned Unit, const LiveRange &Range) { in assign() 135 [&](unsigned Unit, const LiveRange &Range) { in unassign() 179 const LiveRange &Range) { in checkRegUnitInterference() 180 const LiveRange &UnitRange = LIS->getRegUnit(Unit); in checkRegUnitInterference() 186 LiveIntervalUnion::Query &LiveRegMatrix::query(const LiveRange &LR, in query() 209 [&](MCRegUnit Unit, const LiveRange &LR) { in checkInterference() 222 LiveRange::Segment Seg(Start, End, &valno); in checkInterference() 223 LiveRange LR; in checkInterference() 253 LiveRange::Segment Seg(Start, End, &valno); in checkInterferenceLanes() 254 LiveRange LR; in checkInterferenceLanes()
|
| H A D | LiveIntervalUnion.cpp | 29 const LiveRange &Range) { in unify() 35 LiveRange::const_iterator RegPos = Range.begin(); in unify() 36 LiveRange::const_iterator RegEnd = Range.end(); in unify() 57 const LiveRange &Range) { in extract() 63 LiveRange::const_iterator RegPos = Range.begin(); in extract() 64 LiveRange::const_iterator RegEnd = Range.end(); in extract() 151 LiveRange::const_iterator LREnd = LR->end(); in collectInterferingVRegs()
|
| H A D | SafeStackLayout.h | 31 StackLifetime::LiveRange Range; 34 const StackLifetime::LiveRange &Range) in StackRegion() 45 StackLifetime::LiveRange Range; 61 const StackLifetime::LiveRange &Range);
|
| H A D | LiveIntervalCalc.cpp | 32 LiveRange &LR, const MachineOperand &MO) { in createDeadDef() 107 LiveRange &MainRange = LI; in constructMainRangeFromSubranges() 122 void LiveIntervalCalc::createDeadDefs(LiveRange &LR, Register Reg) { in createDeadDefs() 134 void LiveIntervalCalc::extendToUses(LiveRange &LR, Register Reg, in extendToUses()
|
| H A D | LiveRangeCalc.cpp | 86 void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, Register PhysReg, in extend() 121 bool LiveRangeCalc::isDefOnEntry(LiveRange &LR, ArrayRef<SlotIndex> Undefs, in isDefOnEntry() 158 LiveRange::iterator UB = upper_bound(LR, End.getPrevSlot()); in isDefOnEntry() 160 LiveRange::Segment &Seg = *std::prev(UB); in isDefOnEntry() 190 bool LiveRangeCalc::findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB, in findReachingDefs() 402 LiveRange &LR = I.LR; in updateSSA()
|
| H A D | RegisterCoalescer.cpp | 226 bool copyValueUndefInPredecessors(LiveRange &S, const MachineBasicBlock *MBB, 263 void mergeSubRangeInto(LiveInterval &LI, const LiveRange &ToMerge, 269 void joinSubRegRanges(LiveRange &LRange, LiveRange &RRange, 371 void checkMergingChangesDbgValues(CoalescerPair &CP, LiveRange &LHS, 372 JoinVals &LHSVals, LiveRange &RHS, 375 void checkMergingChangesDbgValuesImpl(Register Reg, LiveRange &OtherRange, 376 LiveRange &RegRange, JoinVals &Vals2); 773 for (LiveRange::Segment &ASeg : IntA.segments) { in hasOtherReachingDefs() 793 static std::pair<bool, bool> addSegmentsWithValNo(LiveRange &Dst, in addSegmentsWithValNo() 795 const LiveRange &Src, in addSegmentsWithValNo() [all …]
|
| H A D | SafeStackLayout.cpp | 40 const StackLifetime::LiveRange &Range) { in addObject() 98 Regions.emplace_back(LastRegionEnd, Start, StackLifetime::LiveRange(0)); in layoutObject()
|
| H A D | RegisterPressure.cpp | 233 static const LiveRange *getLiveRange(const LiveIntervals &LIS, unsigned Reg) { in getLiveRange() 420 bool (*Property)(const LiveRange &LR, SlotIndex Pos)) { in getLanesWithProperty() 436 const LiveRange *LR = LIS.getCachedRegUnit(RegUnit); in getLanesWithProperty() 451 [](const LiveRange &LR, SlotIndex Pos) { in getLiveLanesAt() 578 const LiveRange *LR = getLiveRange(LIS, Reg); in detectDeadDefs() 1238 [](const LiveRange &LR, SlotIndex Pos) { in getLiveLanesAt() 1248 [](const LiveRange &LR, SlotIndex Pos) { in getLastUsedLanes() 1249 const LiveRange::Segment *S = LR.getSegmentContaining(Pos); in getLastUsedLanes() 1259 [](const LiveRange &LR, SlotIndex Pos) { in getLiveThroughAt() 1260 const LiveRange::Segment *S = LR.getSegmentContaining(Pos); in getLiveThroughAt()
|
| H A D | TwoAddressInstructionPass.cpp | 131 bool isPlainlyKilled(const MachineInstr *MI, LiveRange &LR) const; 383 LiveRange &LR) const { in isPlainlyKilled() 1635 LI.addSegment(LiveRange::Segment(LastCopyIdx, endIdx, VNI)); in processTiedPairs() 1638 S.addSegment(LiveRange::Segment(LastCopyIdx, endIdx, VNI)); in processTiedPairs() 1642 if (LiveRange *LR = LIS->getCachedRegUnit(Unit)) { in processTiedPairs() 1645 LR->addSegment(LiveRange::Segment(LastCopyIdx, endIdx, VNI)); in processTiedPairs() 1703 auto Shrink = [=](LiveRange &LR, LaneBitmask LaneMask) { in processTiedPairs() 1704 LiveRange::Segment *S = LR.getSegmentContaining(LastCopyIdx); in processTiedPairs() 1809 LiveRange::Segment NewSeg(S.start, S.end, VNI); in processStatepoint() 1942 LiveRange::iterator DefSeg = S.FindSegmentContaining(Idx); in run() [all …]
|
| H A D | MachineVerifier.cpp | 316 void report_context(const LiveRange &LR, VirtRegOrUnit VRegOrUnit, 318 void report_context(const LiveRange::Segment &S) const; 322 void report_context_liverange(const LiveRange &LR) const; 331 SlotIndex UseIdx, const LiveRange &LR, 335 SlotIndex DefIdx, const LiveRange &LR, 347 void verifyLiveRangeValue(const LiveRange &, const VNInfo *, VirtRegOrUnit, 349 void verifyLiveRangeSegment(const LiveRange &, 350 const LiveRange::const_iterator I, VirtRegOrUnit, 352 void verifyLiveRange(const LiveRange &, VirtRegOrUnit, 638 void MachineVerifier::report_context(const LiveRange &LR, in report_context() [all …]
|
| H A D | SplitKit.h | 36 class LiveRange; variable 422 LiveRange &LR, LaneBitmask LM,
|
| H A D | InterferenceCache.h | 80 LiveRange *Fixed = nullptr;
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
| H A D | LiveInterval.h | 158 class LiveRange { 240 LiveRange(bool UseSegmentSet = false) 246 LiveRange(const LiveRange &Other, BumpPtrAllocator &Allocator) { in LiveRange() function 253 void assign(const LiveRange &Other, BumpPtrAllocator &Allocator) { in assign() 298 return const_cast<LiveRange*>(this)->find(Pos); in find() 373 LLVM_ABI void MergeSegmentsInAsValue(const LiveRange &RHS, 381 LLVM_ABI void MergeValueInAsValue(const LiveRange &RHS, 450 bool overlaps(const LiveRange &other) const { in overlaps() 461 LLVM_ABI bool overlaps(const LiveRange &Other, const CoalescerPair &CP, 471 LLVM_ABI bool overlapsFrom(const LiveRange &Other, [all …]
|
| H A D | LiveRangeCalc.h | 77 using EntryInfoMap = DenseMap<LiveRange *, std::pair<BitVector, BitVector>>; 104 LiveRange &LR; 118 LiveInBlock(LiveRange &LR, MachineDomTreeNode *node, SlotIndex kill) in LiveInBlock() 130 bool isDefOnEntry(LiveRange &LR, ArrayRef<SlotIndex> Undefs, 150 bool findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB, SlotIndex Use, 208 LLVM_ABI void extend(LiveRange &LR, SlotIndex Use, Register PhysReg, 244 void addLiveInBlock(LiveRange &LR, MachineDomTreeNode *DomNode,
|
| H A D | LiveIntervals.h | 99 SmallVector<LiveRange *, 0> RegUnitRanges; 211 LLVM_ABI void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices, 214 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices) { in extendToIndices() 225 LLVM_ABI void pruneValue(LiveRange &LR, SlotIndex Kill, 266 bool isLiveInToMBB(const LiveRange &LR, const MachineBasicBlock *mbb) const { in isLiveInToMBB() 270 bool isLiveOutOfMBB(const LiveRange &LR, const MachineBasicBlock *mbb) const { in isLiveOutOfMBB() 415 LiveRange &getRegUnit(unsigned Unit) { in getRegUnit() 416 LiveRange *LR = RegUnitRanges[Unit]; in getRegUnit() 420 RegUnitRanges[Unit] = LR = new LiveRange(UseSegmentSetForPhysRegs); in getRegUnit() 428 LiveRange *getCachedRegUnit(unsigned Unit) { return RegUnitRanges[Unit]; } in getCachedRegUnit() [all …]
|
| H A D | LiveIntervalUnion.h | 91 void unify(const LiveInterval &VirtReg, const LiveRange &Range); 94 void extract(const LiveInterval &VirtReg, const LiveRange &Range); 114 const LiveRange *LR = nullptr; 115 LiveRange::const_iterator LRI; ///< current position in LR 132 Query(const LiveRange &LR, const LiveIntervalUnion &LIU) in Query() 137 void reset(unsigned NewUserTag, const LiveRange &NewLR, in reset() 148 void init(unsigned NewUserTag, const LiveRange &NewLR, in init()
|
| H A D | LiveIntervalCalc.h | 40 LLVM_ABI void extendToUses(LiveRange &LR, Register Reg, LaneBitmask LaneMask, 49 LLVM_ABI void createDeadDefs(LiveRange &LR, Register Reg); 55 void extendToUses(LiveRange &LR, MCRegister PhysReg) { in extendToUses()
|
| H A D | LiveRegMatrix.h | 164 LiveIntervalUnion::Query &query(const LiveRange &LR, MCRegUnit RegUnit);
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | StackLifetime.h | 63 class LiveRange { 66 const StackLifetime::LiveRange &R); 69 LiveRange(unsigned Size, bool Set = false) : Bits(Size, Set) {} in Bits() 72 bool overlaps(const LiveRange &Other) const { in overlaps() 76 void join(const LiveRange &Other) { Bits |= Other.Bits; } in join() 108 /// LiveRange for allocas. 109 SmallVector<LiveRange, 8> LiveRanges; 112 /// allocas get LiveRange that corresponds to the entire function. 151 /// that is large enough for LiveRange::Overlaps to be correct. 152 const LiveRange [all...] |
| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | StackLifetime.cpp | 34 const StackLifetime::LiveRange & 339 LiveRanges.resize(NumAllocas, LiveRange(Instructions.size())); in run() 345 LiveRanges.resize(NumAllocas, LiveRange(Instructions.size())); in run()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/ |
| H A D | HexagonExpandCondsets.cpp | 200 void updateDeadsInRange(Register Reg, LaneBitmask LM, LiveRange &Range); 336 LiveRange::iterator F = S.find(I->end); in updateKillFlags() 354 LiveRange &Range) { in updateDeadsInRange() 1117 for (LiveRange::Segment &LR : LI) { in isIntraBlocks() 1170 for (LiveRange::Segment &I : L2) { in coalesceRegisters() 1179 L1.addSegment(LiveRange::Segment(I.start, I.end, NewVN)); in coalesceRegisters()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
| H A D | GCNRegPressure.cpp | 312 function_ref<bool(const LiveRange &LR, SlotIndex Pos)> Property) { in getLanesWithProperty() 329 const LiveRange *LR = LIS.getCachedRegUnit(RegUnit); in getLanesWithProperty() 498 [](const LiveRange &LR, SlotIndex Pos) { in getLastUsedLanes() 499 const LiveRange::Segment *S = LR.getSegmentContaining(Pos); in getLastUsedLanes() 842 auto IsInOneSegment = [Begin, End](const LiveRange &LR) -> bool { in getRegLiveThroughMask()
|
| H A D | AMDGPUMarkLastScratchLoad.cpp | 106 for (const LiveRange::Segment &Segment : LI.segments) { in run()
|