Home
last modified time | relevance | path

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

12

/external/v8/src/compiler/
Dgreedy-allocator.h21 explicit AllocationCandidate(LiveRange* range) in AllocationCandidate()
41 LiveRange* live_range() const { return candidate_.range_; } in live_range()
47 for (LiveRange* range : group->ranges()) { in CalculateGroupSize()
57 LiveRange* range_;
67 void Schedule(LiveRange* range);
92 static void UpdateWeightAtAllocation(LiveRange* range) { in UpdateWeightAtAllocation()
93 DCHECK_NE(range->weight(), LiveRange::kInvalidWeight); in UpdateWeightAtAllocation()
98 static void UpdateWeightAtEviction(LiveRange* range) { in UpdateWeightAtEviction()
99 DCHECK_NE(range->weight(), LiveRange::kInvalidWeight); in UpdateWeightAtEviction()
124 void AllocateRegisterToRange(unsigned reg_id, LiveRange* range) { in AllocateRegisterToRange()
[all …]
Dgreedy-allocator.cc24 void UpdateOperands(LiveRange* range, RegisterAllocationData* data) { in UpdateOperands()
33 void UnsetOperands(LiveRange* range, RegisterAllocationData* data) { in UnsetOperands()
41 LiveRange* Split(LiveRange* range, RegisterAllocationData* data, in Split()
48 LiveRange* result = range->SplitAt(pos, data->allocation_zone()); in Split()
64 void AllocationScheduler::Schedule(LiveRange* range) { in Schedule()
84 void GreedyAllocator::AssignRangeToRegister(int reg_id, LiveRange* range) { in AssignRangeToRegister()
105 for (LiveRange* fixed_range : GetFixedRegisters()) { in PreallocateFixedRanges()
142 for (LiveRange* member : range->group()->ranges()) { in GroupLiveRanges()
155 LiveRange* other = in GroupLiveRanges()
163 for (LiveRange* member : other_group->ranges()) { in GroupLiveRanges()
[all …]
Dcoalesced-live-ranges.h19 LiveRange* range) in AllocatedInterval()
24 LiveRange* range_;
44 LiveRange* Current() const;
48 LiveRange* GetNext() { return InternalGetNext(false); } in GetNext()
52 LiveRange* RemoveCurrentAndGetNext() { return InternalGetNext(true); } in RemoveCurrentAndGetNext()
58 LiveRangeConflictIterator(const LiveRange* range, IntervalStore* store);
77 LiveRange* InternalGetNext(bool clean_behind);
128 LiveRangeConflictIterator GetConflicts(const LiveRange* range);
132 void AllocateRange(LiveRange* range);
144 static void UpdateWeightAtAllocation(LiveRange* range);
[all …]
Dregister-allocator.h305 class LiveRange : public ZoneObject {
314 LiveRange* next() const { return next_; } in next()
369 UsePosition* DetachAt(LifetimePosition position, LiveRange* result,
374 LiveRange* SplitAt(LifetimePosition position, Zone* zone);
398 bool ShouldBeAllocatedBefore(const LiveRange* other) const;
401 LifetimePosition FirstIntersection(LiveRange* other) const;
428 explicit LiveRange(int relative_id, MachineRepresentation rep,
453 LiveRange* next_;
474 DISALLOW_COPY_AND_ASSIGN(LiveRange);
481 ZoneVector<LiveRange*>& ranges() { return ranges_; } in ranges()
[all …]
Dcoalesced-live-ranges.cc14 LiveRangeConflictIterator::LiveRangeConflictIterator(const LiveRange* range, in LiveRangeConflictIterator()
23 LiveRange* LiveRangeConflictIterator::Current() const { in Current()
79 LiveRange* current_conflict = Current(); in IncrementPosAndSkipOverRepetitions()
86 LiveRange* LiveRangeConflictIterator::InternalGetNext(bool clean_behind) { in InternalGetNext()
89 LiveRange* to_clear = Current(); in InternalGetNext()
115 const LiveRange* range) { in GetConflicts()
120 void CoalescedLiveRanges::AllocateRange(LiveRange* range) { in AllocateRange()
Dregister-allocator.cc22 void RemoveElement(ZoneVector<LiveRange*>* v, LiveRange* range) { in RemoveElement()
258 const float LiveRange::kInvalidWeight = -1;
259 const float LiveRange::kMaxWeight = std::numeric_limits<float>::max();
262 LiveRange::LiveRange(int relative_id, MachineRepresentation rep, in LiveRange() function in v8::internal::compiler::LiveRange
284 void LiveRange::VerifyPositions() const { in VerifyPositions()
299 void LiveRange::VerifyIntervals() const { in VerifyIntervals()
311 void LiveRange::set_assigned_register(int reg) { in set_assigned_register()
317 void LiveRange::UnsetAssignedRegister() { in UnsetAssignedRegister()
323 void LiveRange::Spill() { in Spill()
331 RegisterKind LiveRange::kind() const { in kind()
[all …]
/external/v8/src/crankshaft/
Dlithium-allocator.h154 friend class LiveRange; // Assigns to start_. variable
183 friend class LiveRange; variable
188 class LiveRange: public ZoneObject {
192 LiveRange(int id, Zone* zone);
196 LiveRange* parent() const { return parent_; } in parent()
197 LiveRange* TopLevel() { return (parent_ == NULL) ? this : parent_; } in TopLevel()
198 LiveRange* next() const { return next_; } in next()
235 void SplitAt(LifetimePosition position, LiveRange* result, Zone* zone);
272 bool ShouldBeAllocatedBefore(const LiveRange* other) const;
275 LifetimePosition FirstIntersection(LiveRange* other);
[all …]
Dlithium-allocator.cc72 void LiveRange::Verify() const { in Verify()
82 bool LiveRange::HasOverlap(UseInterval* target) const { in HasOverlap()
99 LiveRange::LiveRange(int id, Zone* zone) in LiveRange() function in v8::internal::LiveRange
116 void LiveRange::set_assigned_register(int reg, Zone* zone) { in set_assigned_register()
123 void LiveRange::MakeSpilled(Zone* zone) { in MakeSpilled()
132 bool LiveRange::HasAllocatedSpillOperand() const { in HasAllocatedSpillOperand()
138 void LiveRange::SetSpillOperand(LOperand* operand) { in SetSpillOperand()
146 UsePosition* LiveRange::NextUsePosition(LifetimePosition start) { in NextUsePosition()
157 UsePosition* LiveRange::NextUsePositionRegisterIsBeneficial( in NextUsePositionRegisterIsBeneficial()
167 UsePosition* LiveRange::PreviousUsePositionRegisterIsBeneficial( in PreviousUsePositionRegisterIsBeneficial()
[all …]
Dlithium-allocator-inl.h46 void LAllocator::SetLiveRangeAssignedRegister(LiveRange* range, int reg) { in SetLiveRangeAssignedRegister()
/external/v8/test/unittests/compiler/
Dcoalesced-live-ranges-unittest.cc17 bool HasNoConflicts(const LiveRange* range);
18 bool ConflictsPreciselyWith(const LiveRange* range, int id);
19 bool ConflictsPreciselyWith(const LiveRange* range, int id1, int id2);
24 void RemoveConflicts(LiveRange* range);
28 bool IsRangeConflictingWith(const LiveRange* range, const LiveRangeIDs& ids);
33 bool CoalescedLiveRangesTest::ConflictsPreciselyWith(const LiveRange* range, in ConflictsPreciselyWith()
41 bool CoalescedLiveRangesTest::ConflictsPreciselyWith(const LiveRange* range, in ConflictsPreciselyWith()
50 bool CoalescedLiveRangesTest::HasNoConflicts(const LiveRange* range) { in HasNoConflicts()
56 void CoalescedLiveRangesTest::RemoveConflicts(LiveRange* range) { in RemoveConflicts()
73 bool CoalescedLiveRangesTest::IsRangeConflictingWith(const LiveRange* range, in IsRangeConflictingWith()
[all …]
Dlive-range-unittest.cc28 LiveRange* Split(LiveRange* range, int pos) { in Split()
46 bool RangesMatch(LiveRange* first, LiveRange* second) { in RangesMatch()
111 LiveRange* child = Split(range, 1); in TEST_F()
116 LiveRange* expected_top = TestRangeBuilder(zone()).Build(0, 1); in TEST_F()
117 LiveRange* expected_bottom = TestRangeBuilder(zone()).Build(1, 2); in TEST_F()
126 LiveRange* child = Split(range, 3); in TEST_F()
131 LiveRange* expected_top = TestRangeBuilder(zone()).Build(0, 2); in TEST_F()
132 LiveRange* expected_bottom = TestRangeBuilder(zone()).Build(4, 6); in TEST_F()
141 LiveRange* child = Split(range, 1); in TEST_F()
146 LiveRange* expected_top = TestRangeBuilder(zone()).Build(0, 1); in TEST_F()
[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.h98 SmallVector<LiveRange*, 0> RegUnitRanges;
175 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices);
185 void pruneValue(LiveRange &LR, SlotIndex Kill,
222 bool isLiveInToMBB(const LiveRange &LR, in isLiveInToMBB()
227 bool isLiveOutOfMBB(const LiveRange &LR, in isLiveOutOfMBB()
375 LiveRange &getRegUnit(unsigned Unit) { in getRegUnit()
376 LiveRange *LR = RegUnitRanges[Unit]; in getRegUnit()
380 RegUnitRanges[Unit] = LR = new LiveRange(UseSegmentSetForPhysRegs); in getRegUnit()
388 LiveRange *getCachedRegUnit(unsigned Unit) { in getCachedRegUnit()
392 const LiveRange *getCachedRegUnit(unsigned Unit) const { in getCachedRegUnit()
[all …]
DLiveIntervalUnion.h87 void unify(LiveInterval &VirtReg, const LiveRange &Range);
93 void extract(LiveInterval &VirtReg, const LiveRange &Range);
/external/llvm/lib/CodeGen/
DLiveInterval.cpp52 LiveRange *LR;
55 CalcLiveRangeUtilBase(LiveRange *LR) : LR(LR) {} in CalcLiveRangeUtilBase()
58 typedef LiveRange::Segment Segment;
234 typedef CalcLiveRangeUtilBase<CalcLiveRangeUtilVector, LiveRange::iterator,
235 LiveRange::Segments> CalcLiveRangeUtilVectorBase;
239 CalcLiveRangeUtilVector(LiveRange *LR) : CalcLiveRangeUtilVectorBase(LR) {} in CalcLiveRangeUtilVector()
244 LiveRange::Segments &segmentsColl() { return LR->segments; } in segmentsColl()
262 LiveRange::SegmentSet::iterator,
263 LiveRange::SegmentSet> CalcLiveRangeUtilSetBase;
267 CalcLiveRangeUtilSet(LiveRange *LR) : CalcLiveRangeUtilSetBase(LR) {} in CalcLiveRangeUtilSet()
[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()
225 void addLiveInBlock(LiveRange &LR,
DLiveIntervalAnalysis.cpp159 if (LiveRange *LR = RegUnitRanges[i]) in print()
269 void LiveIntervals::computeRegUnitRange(LiveRange &LR, unsigned Unit) { in computeRegUnitRange()
329 LiveRange *LR = RegUnitRanges[Unit]; in computeLiveInRegUnits()
332 LR = RegUnitRanges[Unit] = new LiveRange(UseSegmentSetForPhysRegs); in computeLiveInRegUnits()
352 static void createSegmentsForValues(LiveRange &LR, in createSegmentsForValues()
358 LR.addSegment(LiveRange::Segment(Def, Def.getDeadSlot(), VNI)); in createSegmentsForValues()
364 static void extendSegmentsToUses(LiveRange &LR, const SlotIndexes &Indexes, in extendSegmentsToUses()
366 const LiveRange &OldRange) { in extendSegmentsToUses()
402 LR.addSegment(LiveRange::Segment(BlockStart, Idx, VNI)); in extendSegmentsToUses()
463 LiveRange NewLR; in shrinkToUses()
[all …]
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()
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()
DLiveRangeCalc.cpp44 LiveRange &LR, const MachineOperand &MO) { in createDeadDef()
131 void LiveRangeCalc::createDeadDefs(LiveRange &LR, unsigned Reg) { in createDeadDefs()
141 void LiveRangeCalc::extendToUses(LiveRange &LR, unsigned Reg, in extendToUses()
223 void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg) { in extend()
258 bool LiveRangeCalc::findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB, in findReachingDefs()
438 LiveRange &LR = I.LR; in updateSSA()
DMachineVerifier.cpp216 void report_context(const LiveRange &LR, unsigned Reg,
218 void report_context(const LiveRange::Segment &S) const;
232 void verifyLiveRangeValue(const LiveRange&, const VNInfo*, unsigned,
234 void verifyLiveRangeSegment(const LiveRange&,
235 const LiveRange::const_iterator I, unsigned,
237 void verifyLiveRange(const LiveRange&, unsigned, LaneBitmask LaneMask = 0);
442 void MachineVerifier::report_context(const LiveRange &LR, unsigned Reg, in report_context()
450 void MachineVerifier::report_context(const LiveRange::Segment &S) const { in report_context()
1056 if (const LiveRange *LR = LiveInts->getCachedRegUnit(*Units)) { in checkLiveness()
1422 if (const LiveRange *LR = LiveInts->getCachedRegUnit(i)) in verifyLiveIntervals()
[all …]
DRegisterCoalescer.cpp166 void mergeSubRangeInto(LiveInterval &LI, const LiveRange &ToMerge,
171 void joinSubRegRanges(LiveRange &LRange, LiveRange &RRange,
584 for (LiveRange::Segment &ASeg : IntA.segments) { in hasOtherReachingDefs()
604 static void addSegmentsWithValNo(LiveRange &Dst, VNInfo *DstValNo, in addSegmentsWithValNo()
605 const LiveRange &Src, const VNInfo *SrcValNo) in addSegmentsWithValNo()
607 for (const LiveRange::Segment &S : Src.segments) { in addSegmentsWithValNo()
610 Dst.addSegment(LiveRange::Segment(S.start, S.end, DstValNo)); in addSegmentsWithValNo()
826 LiveRange RangeCopy(SB, Allocator); in removeCopyByCommutingDef()
836 LiveRange *NewRange = IntB.createSubRange(Allocator, AMask); in removeCopyByCommutingDef()
1031 if (LiveRange *LR = LIS->getCachedRegUnit(*Units)) in reMaterializeTrivialDef()
[all …]
DRegisterPressure.cpp174 static const LiveRange *getLiveRange(const LiveIntervals &LIS, unsigned Reg) { in getLiveRange()
406 const LiveRange *LR = getLiveRange(LIS, Reg); in detectDeadDefs()
569 const LiveRange *LR = getLiveRange(*LIS, Reg); in recede()
621 const LiveRange *LR = getLiveRange(*LIS, Reg); in advance()
932 const LiveRange *LR = getLiveRange(*LIS, Reg); in bumpDownwardPressure()
/external/llvm/lib/Target/AMDGPU/
DSILoadStoreOptimizer.cpp276 LiveRange &M0Range = LIS->getRegUnit(*MCRegUnitIterator(AMDGPU::M0, TRI)); in mergeRead2Pair()
277 LiveRange::Segment *M0Segment = M0Range.getSegmentContaining(PairedIndex); in mergeRead2Pair()
344 LiveRange &M0Range = LIS->getRegUnit(*MCRegUnitIterator(AMDGPU::M0, TRI)); in mergeWrite2Pair()
345 LiveRange::Segment *M0Segment = M0Range.getSegmentContaining(PairedIndex); in mergeWrite2Pair()
/external/llvm/test/CodeGen/Generic/
DbadCallArgLRLLVM.ll6 ; so no LiveRange has been created for its return value.

12