Home
last modified time | relevance | path

Searched refs:LiveRange (Results 1 – 25 of 44) sorted by relevance

12

/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DLiveInterval.cpp67 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 DLiveIntervals.cpp153 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 DLiveRegMatrix.cpp118 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 DLiveIntervalUnion.cpp29 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 DSafeStackLayout.h31 StackLifetime::LiveRange Range;
34 const StackLifetime::LiveRange &Range) in StackRegion()
45 StackLifetime::LiveRange Range;
61 const StackLifetime::LiveRange &Range);
H A DLiveIntervalCalc.cpp32 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 DLiveRangeCalc.cpp86 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 DRegisterCoalescer.cpp226 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 DSafeStackLayout.cpp40 const StackLifetime::LiveRange &Range) { in addObject()
98 Regions.emplace_back(LastRegionEnd, Start, StackLifetime::LiveRange(0)); in layoutObject()
H A DRegisterPressure.cpp233 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 DTwoAddressInstructionPass.cpp131 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 DMachineVerifier.cpp316 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 DSplitKit.h36 class LiveRange; variable
422 LiveRange &LR, LaneBitmask LM,
H A DInterferenceCache.h80 LiveRange *Fixed = nullptr;
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DLiveInterval.h158 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 DLiveRangeCalc.h77 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 DLiveIntervals.h99 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 DLiveIntervalUnion.h91 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 DLiveIntervalCalc.h40 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 DLiveRegMatrix.h164 LiveIntervalUnion::Query &query(const LiveRange &LR, MCRegUnit RegUnit);
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DStackLifetime.h63 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 DStackLifetime.cpp34 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 DHexagonExpandCondsets.cpp200 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 DGCNRegPressure.cpp312 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 DAMDGPUMarkLastScratchLoad.cpp106 for (const LiveRange::Segment &Segment : LI.segments) { in run()

12