Home
last modified time | relevance | path

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

123

/external/v8/src/crankshaft/
Dlithium-allocator.h156 friend class LiveRange; // Assigns to start_. variable
185 friend class LiveRange; variable
190 class LiveRange: public ZoneObject {
194 LiveRange(int id, Zone* zone);
198 LiveRange* parent() const { return parent_; } in parent()
199 LiveRange* TopLevel() { return (parent_ == NULL) ? this : parent_; } in TopLevel()
200 LiveRange* next() const { return next_; } in next()
237 void SplitAt(LifetimePosition position, LiveRange* result, Zone* zone);
274 bool ShouldBeAllocatedBefore(const LiveRange* other) const;
277 LifetimePosition FirstIntersection(LiveRange* other);
[all …]
Dlithium-allocator.cc75 void LiveRange::Verify() const { in Verify()
85 bool LiveRange::HasOverlap(UseInterval* target) const { in HasOverlap()
102 LiveRange::LiveRange(int id, Zone* zone) in LiveRange() function in v8::internal::LiveRange
119 void LiveRange::set_assigned_register(int reg, Zone* zone) { in set_assigned_register()
126 void LiveRange::MakeSpilled(Zone* zone) { in MakeSpilled()
135 bool LiveRange::HasAllocatedSpillOperand() const { in HasAllocatedSpillOperand()
141 void LiveRange::SetSpillOperand(LOperand* operand) { in SetSpillOperand()
149 UsePosition* LiveRange::NextUsePosition(LifetimePosition start) { in NextUsePosition()
160 UsePosition* LiveRange::NextUsePositionRegisterIsBeneficial( in NextUsePositionRegisterIsBeneficial()
170 UsePosition* LiveRange::PreviousUsePositionRegisterIsBeneficial( in PreviousUsePositionRegisterIsBeneficial()
[all …]
/external/llvm/include/llvm/CodeGen/
DLiveInterval.h154 class LiveRange {
222 LiveRange(bool UseSegmentSet = false)
228 LiveRange(const LiveRange &Other, BumpPtrAllocator &Allocator) { in LiveRange() function
273 return const_cast<LiveRange*>(this)->find(Pos); in find()
344 void MergeSegmentsInAsValue(const LiveRange &RHS, VNInfo *LHSValNo);
351 void MergeValueInAsValue(const LiveRange &RHS,
420 bool overlaps(const LiveRange &other) const { in overlaps()
431 bool overlaps(const LiveRange &Other, const CoalescerPair &CP,
441 bool overlapsFrom(const LiveRange &Other, const_iterator I) const;
447 bool covers(const LiveRange &Other) const;
[all …]
DLiveIntervalAnalysis.h97 SmallVector<LiveRange*, 0> RegUnitRanges;
174 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices);
184 void pruneValue(LiveRange &LR, SlotIndex Kill,
221 bool isLiveInToMBB(const LiveRange &LR, in isLiveInToMBB()
226 bool isLiveOutOfMBB(const LiveRange &LR, in isLiveOutOfMBB()
374 LiveRange &getRegUnit(unsigned Unit) { in getRegUnit()
375 LiveRange *LR = RegUnitRanges[Unit]; in getRegUnit()
379 RegUnitRanges[Unit] = LR = new LiveRange(UseSegmentSetForPhysRegs); in getRegUnit()
387 LiveRange *getCachedRegUnit(unsigned Unit) { in getCachedRegUnit()
391 const LiveRange *getCachedRegUnit(unsigned Unit) const { in getCachedRegUnit()
[all …]
/external/llvm/lib/CodeGen/
DLiveInterval.cpp53 LiveRange *LR;
56 CalcLiveRangeUtilBase(LiveRange *LR) : LR(LR) {} in CalcLiveRangeUtilBase()
59 typedef LiveRange::Segment Segment;
235 typedef CalcLiveRangeUtilBase<CalcLiveRangeUtilVector, LiveRange::iterator,
236 LiveRange::Segments> CalcLiveRangeUtilVectorBase;
240 CalcLiveRangeUtilVector(LiveRange *LR) : CalcLiveRangeUtilVectorBase(LR) {} in CalcLiveRangeUtilVector()
245 LiveRange::Segments &segmentsColl() { return LR->segments; } in segmentsColl()
263 LiveRange::SegmentSet::iterator,
264 LiveRange::SegmentSet> CalcLiveRangeUtilSetBase;
268 CalcLiveRangeUtilSet(LiveRange *LR) : CalcLiveRangeUtilSetBase(LR) {} in CalcLiveRangeUtilSet()
[all …]
DLiveIntervalAnalysis.cpp151 if (LiveRange *LR = RegUnitRanges[i]) in print()
258 void LiveIntervals::computeRegUnitRange(LiveRange &LR, unsigned Unit) { in computeRegUnitRange()
318 LiveRange *LR = RegUnitRanges[Unit]; in computeLiveInRegUnits()
321 LR = RegUnitRanges[Unit] = new LiveRange(UseSegmentSetForPhysRegs); in computeLiveInRegUnits()
341 static void createSegmentsForValues(LiveRange &LR, in createSegmentsForValues()
347 LR.addSegment(LiveRange::Segment(Def, Def.getDeadSlot(), VNI)); in createSegmentsForValues()
353 static void extendSegmentsToUses(LiveRange &LR, const SlotIndexes &Indexes, in extendSegmentsToUses()
355 const LiveRange &OldRange) { in extendSegmentsToUses()
391 LR.addSegment(LiveRange::Segment(BlockStart, Idx, VNI)); in extendSegmentsToUses()
452 LiveRange NewLR; in shrinkToUses()
[all …]
DLiveRangeCalc.h80 LiveRange &LR;
94 LiveInBlock(LiveRange &LR, MachineDomTreeNode *node, SlotIndex kill) in LiveInBlock()
114 bool findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB,
132 void extendToUses(LiveRange &LR, unsigned Reg, LaneBitmask LaneMask);
172 void extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg = 0);
177 void createDeadDefs(LiveRange &LR, unsigned Reg);
183 void extendToUses(LiveRange &LR, unsigned PhysReg) { in extendToUses()
230 void addLiveInBlock(LiveRange &LR,
DSafeStackColoring.h49 struct LiveRange { struct
53 bool Overlaps(const LiveRange &Other) const { in Overlaps() argument
56 void Join(const LiveRange &Other) { bv |= Other.bv; } in Join() argument
78 SmallVector<LiveRange, 8> LiveRanges;
112 const LiveRange &getLiveRange(AllocaInst *AI);
116 LiveRange getFullLiveRange() { in getFullLiveRange()
118 LiveRange R; in getFullLiveRange()
142 const StackColoring::LiveRange &R) {
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()
DSafeStackLayout.h25 StackColoring::LiveRange Range;
27 const StackColoring::LiveRange &Range) in StackRegion()
36 StackColoring::LiveRange Range;
49 const StackColoring::LiveRange &Range);
DLiveRangeCalc.cpp44 LiveRange &LR, const MachineOperand &MO) { in createDeadDef()
132 LiveRange &MainRange = LI; in constructMainRangeFromSubranges()
147 void LiveRangeCalc::createDeadDefs(LiveRange &LR, unsigned Reg) { in createDeadDefs()
157 void LiveRangeCalc::extendToUses(LiveRange &LR, unsigned Reg, in extendToUses()
239 void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg) { in extend()
274 bool LiveRangeCalc::findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB, in findReachingDefs()
454 LiveRange &LR = I.LR; in updateSSA()
DLiveRegMatrix.cpp104 const LiveRange &Range) { in assign()
121 const LiveRange &Range) { in unassign()
164 const LiveRange &Range) { in checkRegUnitInterference()
165 const LiveRange &UnitRange = LIS->getRegUnit(Unit); in checkRegUnitInterference()
DMachineVerifier.cpp216 void report_context(const LiveRange &LR, unsigned Reg,
218 void report_context(const LiveRange::Segment &S) const;
221 void report_context_liverange(const LiveRange &LR) const;
230 SlotIndex UseIdx, const LiveRange &LR, unsigned Reg,
233 SlotIndex DefIdx, const LiveRange &LR, unsigned Reg,
244 void verifyLiveRangeValue(const LiveRange&, const VNInfo*, unsigned,
246 void verifyLiveRangeSegment(const LiveRange&,
247 const LiveRange::const_iterator I, unsigned,
249 void verifyLiveRange(const LiveRange&, unsigned, LaneBitmask LaneMask = 0);
477 void MachineVerifier::report_context(const LiveRange &LR, unsigned Reg, in report_context()
[all …]
DRegisterCoalescer.cpp166 void mergeSubRangeInto(LiveInterval &LI, const LiveRange &ToMerge,
171 void joinSubRegRanges(LiveRange &LRange, LiveRange &RRange,
594 for (LiveRange::Segment &ASeg : IntA.segments) { in hasOtherReachingDefs()
614 static void addSegmentsWithValNo(LiveRange &Dst, VNInfo *DstValNo, in addSegmentsWithValNo()
615 const LiveRange &Src, const VNInfo *SrcValNo) in addSegmentsWithValNo()
617 for (const LiveRange::Segment &S : Src.segments) { in addSegmentsWithValNo()
620 Dst.addSegment(LiveRange::Segment(S.start, S.end, DstValNo)); in addSegmentsWithValNo()
836 LiveRange RangeCopy(SB, Allocator); in removeCopyByCommutingDef()
846 LiveRange *NewRange = IntB.createSubRange(Allocator, AMask); in removeCopyByCommutingDef()
1095 if (LiveRange *LR = LIS->getCachedRegUnit(*Units)) in reMaterializeTrivialDef()
[all …]
/external/v8/src/compiler/
Dregister-allocator.h311 class V8_EXPORT_PRIVATE LiveRange : public NON_EXPORTED_BASE(ZoneObject) { in NON_EXPORTED_BASE()
320 LiveRange* next() const { return next_; } in NON_EXPORTED_BASE()
384 UsePosition* DetachAt(LifetimePosition position, LiveRange* result, in NON_EXPORTED_BASE()
389 LiveRange* SplitAt(LifetimePosition position, Zone* zone); in NON_EXPORTED_BASE()
413 bool ShouldBeAllocatedBefore(const LiveRange* other) const; in NON_EXPORTED_BASE()
416 LifetimePosition FirstIntersection(LiveRange* other) const; in NON_EXPORTED_BASE()
433 explicit LiveRange(int relative_id, MachineRepresentation rep, in NON_EXPORTED_BASE()
458 LiveRange* next_; in NON_EXPORTED_BASE()
468 DISALLOW_COPY_AND_ASSIGN(LiveRange); in NON_EXPORTED_BASE()
475 ZoneVector<LiveRange*>& ranges() { return ranges_; } in ranges()
[all …]
Dregister-allocator.cc27 void RemoveElement(ZoneVector<LiveRange*>* v, LiveRange* range) { in RemoveElement()
104 explicit LiveRangeBound(LiveRange* range, bool skip) in LiveRangeBound()
113 LiveRange* const range_;
124 LiveRange* cur_cover_;
125 LiveRange* pred_cover_;
143 for (LiveRange *i = range; i != nullptr; i = i->next(), ++curr) { in Initialize()
403 LiveRange::LiveRange(int relative_id, MachineRepresentation rep, in LiveRange() function in v8::internal::compiler::LiveRange
422 void LiveRange::VerifyPositions() const { in VerifyPositions()
437 void LiveRange::VerifyIntervals() const { in VerifyIntervals()
449 void LiveRange::set_assigned_register(int reg) { in set_assigned_register()
[all …]
/external/swiftshader/third_party/LLVM/include/llvm/CodeGen/
DLiveInterval.h149 struct LiveRange { struct
154 LiveRange(SlotIndex S, SlotIndex E, VNInfo *V) in LiveRange() argument
173 bool operator<(const LiveRange &LR) const { argument
176 bool operator==(const LiveRange &LR) const {
184 LiveRange(); // DO NOT IMPLEMENT
187 template <> struct isPodLike<LiveRange> { static const bool value = true; };
189 raw_ostream& operator<<(raw_ostream& os, const LiveRange &LR);
192 inline bool operator<(SlotIndex V, const LiveRange &LR) {
196 inline bool operator<(const LiveRange &LR, SlotIndex V) {
206 typedef SmallVector<LiveRange,4> Ranges;
[all …]
/external/swiftshader/third_party/subzero/src/
DIceOperand.cpp104 void LiveRange::addSegment(InstNumberT Start, InstNumberT End, CfgNode *Node) { in addSegment()
127 bool LiveRange::endsBefore(const LiveRange &Other) const { in endsBefore()
137 bool LiveRange::overlaps(const LiveRange &Other, bool UseTrimmed) const { in overlaps()
156 bool LiveRange::overlapsInst(InstNumberT OtherBegin, bool UseTrimmed) const { in overlapsInst()
174 LiveRange Temp; in overlapsInst()
187 bool LiveRange::containsValue(InstNumberT Value, bool IsDest) const { in containsValue()
196 void LiveRange::trim(InstNumberT Lower) { in trim()
632 void LiveRange::dump(Ostream &Str) const { in dump()
644 Ostream &operator<<(Ostream &Str, const LiveRange &L) { in operator <<()
DIceOperand.h619 class LiveRange {
624 LiveRange() = default;
627 explicit LiveRange(const CfgVector<InstNumberT> &Kills) { in LiveRange() function
632 LiveRange(const LiveRange &) = default;
633 LiveRange &operator=(const LiveRange &) = default;
644 bool endsBefore(const LiveRange &Other) const;
645 bool overlaps(const LiveRange &Other, bool UseTrimmed = false) const;
683 Ostream &operator<<(Ostream &Str, const LiveRange &L);
787 LiveRange &getLiveRange() { return Live; } in getLiveRange()
788 const LiveRange &getLiveRange() const { return Live; } in getLiveRange()
[all …]
/external/swiftshader/third_party/LLVM/lib/CodeGen/
DSplitter.cpp130 LiveRange *preHeaderRange = in applyIncoming()
151 getNewLI()->addRange(LiveRange(copyDefIdx, in applyIncoming()
167 LiveRange *outRange = ls.lis->findEnteringRange(li, outBlock); in applyOutgoing()
190 getNewLI()->addRange(LiveRange(ls.lis->getMBBStartIdx(outBlock), in applyOutgoing()
196 void copyRange(LiveRange &lr) { in copyRange()
203 LiveRange loopRange(lsr.second.first, lsr.second.second, in copyRange()
218 LiveRange *defRange = in copyRanges()
224 LiveRange *useRange = in copyRanges()
236 LiveRange *enteringRange = in copyRanges()
526 li.addRange(LiveRange(lis->getMBBStartIdx(preHeader), in insertPreHeader()
[all …]
DLiveInterval.cpp228 LiveInterval::addRangeFrom(LiveRange LR, iterator From) { in addRangeFrom()
338 ranges.insert(llvm::next(I), LiveRange(End, OldEnd, ValNo)); in removeRange()
462 LiveRange Tmp = *I; in MergeRangesInAsValue()
483 LiveRange Tmp = *I; in MergeValueInAsValue()
566 const LiveRange &LR = RHS.ranges[i]; in Copy()
567 addRange(LiveRange(LR.start, LR.end, getValNumInfo(LR.valno->id))); in Copy()
601 raw_ostream& llvm::operator<<(raw_ostream& os, const LiveRange &LR) { in operator <<()
605 void LiveRange::dump() const { in dump()
654 void LiveRange::print(raw_ostream &os) const { in print()
DLiveRangeCalc.cpp44 I->LI->addRange(LiveRange(Start, I->Kill, VNI)); in updateLiveIns()
46 I->LI->addRange(LiveRange(Start, End, VNI)); in updateLiveIns()
248 I->LI->addRange(LiveRange(Start, I->Kill, VNI)); in updateSSA()
250 I->LI->addRange(LiveRange(Start, End, VNI)); in updateSSA()
DLiveIntervalAnalysis.cpp157 const LiveRange &range = li.ranges.front(); in conflictsWithPhysReg()
275 const LiveRange *OldLR = in isPartialRedef()
346 LiveRange LR(defIndex, killIdx, ValNo); in handleVirtualRegisterDef()
357 LiveRange NewLR(defIndex, getMBBEndIdx(mbb), ValNo); in handleVirtualRegisterDef()
376 LiveRange LR(getMBBStartIdx(aliveBlock), getMBBEndIdx(aliveBlock), ValNo); in handleVirtualRegisterDef()
397 LiveRange LR(Start, killIdx, ValNo); in handleVirtualRegisterDef()
429 const LiveRange *OldLR = in handleVirtualRegisterDef()
451 LiveRange LR(DefIndex, RedefIndex, ValNo); in handleVirtualRegisterDef()
458 interval.addRange(LiveRange(RedefIndex, RedefIndex.getStoreIndex(), in handleVirtualRegisterDef()
481 LiveRange LR(defIndex, killIndex, ValNo); in handleVirtualRegisterDef()
[all …]
DSplitter.h26 struct LiveRange;
83 std::pair<bool, SlotPair> getLoopSubRange(const LiveRange &lr,
/external/llvm/lib/Target/AMDGPU/
DSILoadStoreOptimizer.cpp261 LiveRange &M0Range = LIS->getRegUnit(*MCRegUnitIterator(AMDGPU::M0, TRI)); in mergeRead2Pair()
262 LiveRange::Segment *M0Segment = M0Range.getSegmentContaining(PairedIndex); in mergeRead2Pair()
329 LiveRange &M0Range = LIS->getRegUnit(*MCRegUnitIterator(AMDGPU::M0, TRI)); in mergeWrite2Pair()
330 LiveRange::Segment *M0Segment = M0Range.getSegmentContaining(PairedIndex); in mergeWrite2Pair()

123