Home
last modified time | relevance | path

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

12

/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/CodeGen/
H A DLiveInterval.h157 class LiveRange {
231 LiveRange(bool UseSegmentSet = false)
237 LiveRange(const LiveRange &Other, BumpPtrAllocator &Allocator) { in LiveRange() function
244 void assign(const LiveRange &Other, BumpPtrAllocator &Allocator) { in assign()
289 return const_cast<LiveRange*>(this)->find(Pos); in find()
364 void MergeSegmentsInAsValue(const LiveRange &RHS, VNInfo *LHSValNo);
371 void MergeValueInAsValue(const LiveRange &RHS,
440 bool overlaps(const LiveRange &other) const { in overlaps()
451 bool overlaps(const LiveRange &Other, const CoalescerPair &CP,
461 bool overlapsFrom(const LiveRange &Other, const_iterator StartPos) const;
[all …]
H A DLiveIntervals.h96 SmallVector<LiveRange*, 0> RegUnitRanges;
184 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices,
187 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices) { in extendToIndices()
198 void pruneValue(LiveRange &LR, SlotIndex Kill,
245 bool isLiveInToMBB(const LiveRange &LR, in isLiveInToMBB()
250 bool isLiveOutOfMBB(const LiveRange &LR, in isLiveOutOfMBB()
393 LiveRange &getRegUnit(unsigned Unit) { in getRegUnit()
394 LiveRange *LR = RegUnitRanges[Unit]; in getRegUnit()
398 RegUnitRanges[Unit] = LR = new LiveRange(UseSegmentSetForPhysRegs); in getRegUnit()
406 LiveRange *getCachedRegUnit(unsigned Unit) { in getCachedRegUnit()
[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 void extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg,
244 void addLiveInBlock(LiveRange &LR, MachineDomTreeNode *DomNode,
H A DLiveIntervalUnion.h91 void unify(LiveInterval &VirtReg, const LiveRange &Range);
94 void extract(LiveInterval &VirtReg, const LiveRange &Range);
114 const LiveRange *LR = nullptr;
115 LiveRange::const_iterator LRI; ///< current position in LR
125 Query(const LiveRange &LR, const LiveIntervalUnion &LIU) in Query()
130 void reset(unsigned NewUserTag, const LiveRange &NewLR, in reset()
141 void init(unsigned NewUserTag, const LiveRange &NewLR, in init()
H A DLiveIntervalCalc.h39 void extendToUses(LiveRange &LR, Register Reg, LaneBitmask LaneMask,
48 void createDeadDefs(LiveRange &LR, Register Reg);
54 void extendToUses(LiveRange &LR, MCRegister PhysReg) { in extendToUses()
H A DLiveRegMatrix.h151 LiveIntervalUnion::Query &query(const LiveRange &LR, MCRegister RegUnit);
/netbsd-src/external/apache2/llvm/dist/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.cpp118 for (LiveRange *LR : RegUnitRanges) in releaseMemory()
160 if (LiveRange *LR = RegUnitRanges[Unit]) in print()
278 void LiveIntervals::computeRegUnitRange(LiveRange &LR, unsigned Unit) { in computeRegUnitRange()
345 LiveRange *LR = RegUnitRanges[Unit]; in computeLiveInRegUnits()
348 LR = RegUnitRanges[Unit] = new LiveRange(UseSegmentSetForPhysRegs); in computeLiveInRegUnits()
365 static void createSegmentsForValues(LiveRange &LR, in createSegmentsForValues()
371 LR.addSegment(LiveRange::Segment(Def, Def.getDeadSlot(), VNI)); in createSegmentsForValues()
375 void LiveIntervals::extendSegmentsToUses(LiveRange &Segments, in extendSegmentsToUses()
384 -> const LiveRange& { in extendSegmentsToUses()
397 const LiveRange &OldRange = getSubRange(LI, LaneMask); in extendSegmentsToUses()
[all …]
H A DLiveRegMatrix.cpp111 TRI, VirtReg, PhysReg, [&](unsigned Unit, const LiveRange &Range) { in assign()
128 [&](unsigned Unit, const LiveRange &Range) { in unassign()
171 const LiveRange &Range) { in checkRegUnitInterference()
172 const LiveRange &UnitRange = LIS->getRegUnit(Unit); in checkRegUnitInterference()
178 LiveIntervalUnion::Query &LiveRegMatrix::query(const LiveRange &LR, in query()
200 [&](MCRegister Unit, const LiveRange &LR) { in checkInterference()
213 LiveRange::Segment Seg(Start, End, &valno); in checkInterference()
214 LiveRange LR; in checkInterference()
H A DLiveIntervalUnion.cpp29 void LiveIntervalUnion::unify(LiveInterval &VirtReg, const LiveRange &Range) { in unify()
35 LiveRange::const_iterator RegPos = Range.begin(); in unify()
36 LiveRange::const_iterator RegEnd = Range.end(); in unify()
56 void LiveIntervalUnion::extract(LiveInterval &VirtReg, const LiveRange &Range) { in extract()
62 LiveRange::const_iterator RegPos = Range.begin(); in extract()
63 LiveRange::const_iterator RegEnd = Range.end(); in extract()
152 LiveRange::const_iterator LREnd = LR->end(); in collectInterferingVRegs()
H A DSafeStackLayout.h30 StackLifetime::LiveRange Range;
33 const StackLifetime::LiveRange &Range) in StackRegion()
43 StackLifetime::LiveRange Range;
59 const StackLifetime::LiveRange &Range);
H A DLiveIntervalCalc.cpp43 LiveRange &LR, const MachineOperand &MO) { in createDeadDef()
118 LiveRange &MainRange = LI; in constructMainRangeFromSubranges()
133 void LiveIntervalCalc::createDeadDefs(LiveRange &LR, Register Reg) { in createDeadDefs()
145 void LiveIntervalCalc::extendToUses(LiveRange &LR, Register Reg, in extendToUses()
H A DRegisterCoalescer.cpp217 bool copyValueUndefInPredecessors(LiveRange &S,
254 void mergeSubRangeInto(LiveInterval &LI, const LiveRange &ToMerge,
260 void joinSubRegRanges(LiveRange &LRange, LiveRange &RRange,
362 void checkMergingChangesDbgValues(CoalescerPair &CP, LiveRange &LHS,
363 JoinVals &LHSVals, LiveRange &RHS,
366 void checkMergingChangesDbgValuesImpl(Register Reg, LiveRange &OtherRange,
367 LiveRange &RegRange, JoinVals &Vals2);
744 for (LiveRange::Segment &ASeg : IntA.segments) { in hasOtherReachingDefs()
764 addSegmentsWithValNo(LiveRange &Dst, VNInfo *DstValNo, const LiveRange &Src, in addSegmentsWithValNo()
768 for (const LiveRange::Segment &S : Src.segments) { in addSegmentsWithValNo()
[all …]
H A DLiveRangeCalc.cpp89 void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg, in extend()
124 bool LiveRangeCalc::isDefOnEntry(LiveRange &LR, ArrayRef<SlotIndex> Undefs, in isDefOnEntry()
161 LiveRange::iterator UB = upper_bound(LR, End.getPrevSlot()); in isDefOnEntry()
163 LiveRange::Segment &Seg = *std::prev(UB); in isDefOnEntry()
193 bool LiveRangeCalc::findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB, in findReachingDefs()
400 LiveRange &LR = I.LR; in updateSSA()
H A DMachineVerifier.cpp229 void report_context(const LiveRange &LR, Register VRegUnit,
231 void report_context(const LiveRange::Segment &S) const;
235 void report_context_liverange(const LiveRange &LR) const;
244 SlotIndex UseIdx, const LiveRange &LR,
248 SlotIndex DefIdx, const LiveRange &LR,
260 void verifyLiveRangeValue(const LiveRange &, const VNInfo *, Register,
262 void verifyLiveRangeSegment(const LiveRange &,
263 const LiveRange::const_iterator I, Register,
265 void verifyLiveRange(const LiveRange &, Register,
516 void MachineVerifier::report_context(const LiveRange &LR, Register VRegUnit, in report_context()
[all …]
H A DRegisterPressure.cpp237 static const LiveRange *getLiveRange(const LiveIntervals &LIS, unsigned Reg) { in getLiveRange()
425 bool (*Property)(const LiveRange &LR, SlotIndex Pos)) { in getLanesWithProperty()
441 const LiveRange *LR = LIS.getCachedRegUnit(RegUnit); in getLanesWithProperty()
456 [](const LiveRange &LR, SlotIndex Pos) { in getLiveLanesAt()
586 const LiveRange *LR = getLiveRange(LIS, Reg); in detectDeadDefs()
1250 [](const LiveRange &LR, SlotIndex Pos) { in getLiveLanesAt()
1260 [](const LiveRange &LR, SlotIndex Pos) { in getLastUsedLanes()
1261 const LiveRange::Segment *S = LR.getSegmentContaining(Pos); in getLastUsedLanes()
1271 [](const LiveRange &LR, SlotIndex Pos) { in getLiveThroughAt()
1272 const LiveRange::Segment *S = LR.getSegmentContaining(Pos); in getLiveThroughAt()
H A DSafeStackLayout.cpp41 const StackLifetime::LiveRange &Range) { in addObject()
98 Regions.emplace_back(LastRegionEnd, Start, StackLifetime::LiveRange(0)); in layoutObject()
H A DInterferenceCache.h80 LiveRange *Fixed = nullptr;
H A DSplitKit.cpp1132 for (const LiveRange::Segment &S : Edit->getParent()) { in transferValues()
1237 static bool removeDeadSegment(SlotIndex Def, LiveRange &LR) { in removeDeadSegment()
1238 const LiveRange::Segment *Seg = LR.getSegmentContaining(Def); in removeDeadSegment()
1249 LiveRange &LR, LaneBitmask LM, in extendPHIRange()
1259 LiveRange &PSR = !LM.all() ? getSubRangeForMaskExact(LM, PLI) in extendPHIRange()
1260 : static_cast<LiveRange &>(PLI); in extendPHIRange()
1416 for (const LiveRange::Segment &S : LI->segments) { in deleteRematVictims()
H A DSplitKit.h435 LiveRange &LR, LaneBitmask LM,
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/
H A DStackLifetime.h64 class LiveRange {
67 const StackLifetime::LiveRange &R);
70 LiveRange(unsigned Size, bool Set = false) : Bits(Size, Set) {} in Bits()
73 bool overlaps(const LiveRange &Other) const { in overlaps()
77 void join(const LiveRange &Other) { Bits |= Other.Bits; } in join()
110 SmallVector<LiveRange, 8> LiveRanges;
153 const LiveRange &getLiveRange(const AllocaInst *AI) const;
163 LiveRange getFullLiveRange() const { in getFullLiveRange()
164 return LiveRange(Instructions.size(), true); in getFullLiveRange()
180 const StackLifetime::LiveRange &R) {
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Analysis/
H A DStackLifetime.cpp39 const StackLifetime::LiveRange &
330 LiveRanges.resize(NumAllocas, LiveRange(Instructions.size())); in run()
336 LiveRanges.resize(NumAllocas, LiveRange(Instructions.size())); in run()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/
H A DSIWholeQuadMode.cpp186 void markDefs(const MachineInstr &UseMI, LiveRange &LR, Register Reg,
315 void SIWholeQuadMode::markDefs(const MachineInstr &UseMI, LiveRange &LR, in markDefs()
451 LiveRange &LR = LIS->getInterval(Reg); in markOperand()
459 LiveRange &LR = LIS->getRegUnit(*RegUnit); in markOperand()
1076 LiveRange &LR = in prepareInsertion()
1084 const LiveRange::Segment *S; in prepareInsertion()
H A DSIOptimizeExecMaskingPreRA.cpp83 static bool isDefBetween(const LiveRange &LR, SlotIndex AndIdx, in isDefBetween()
285 LiveRange &RegUnit = LIS->getRegUnit(*UI); in optimizeElseBranch()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/Hexagon/
H A DHexagonExpandCondsets.cpp206 void updateDeadsInRange(Register Reg, LaneBitmask LM, LiveRange &Range);
350 LiveRange::iterator F = S.find(I->end); in updateKillFlags()
368 LiveRange &Range) { in updateDeadsInRange()
1112 LiveRange::Segment &LR = *I; in isIntraBlocks()
1174 L1.addSegment(LiveRange::Segment(I->start, I->end, NewVN)); in coalesceRegisters()

12