/external/v8/src/compiler/ |
D | greedy-allocator.h | 21 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 …]
|
D | greedy-allocator.cc | 24 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 …]
|
D | coalesced-live-ranges.h | 19 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 …]
|
D | register-allocator.h | 305 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 …]
|
D | coalesced-live-ranges.cc | 14 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()
|
D | register-allocator.cc | 22 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/ |
D | lithium-allocator.h | 154 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 …]
|
D | lithium-allocator.cc | 72 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 …]
|
D | lithium-allocator-inl.h | 46 void LAllocator::SetLiveRangeAssignedRegister(LiveRange* range, int reg) { in SetLiveRangeAssignedRegister()
|
/external/v8/test/unittests/compiler/ |
D | coalesced-live-ranges-unittest.cc | 17 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 …]
|
D | live-range-unittest.cc | 28 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/ |
D | LiveInterval.h | 154 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 …]
|
D | LiveIntervalAnalysis.h | 98 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 …]
|
D | LiveIntervalUnion.h | 87 void unify(LiveInterval &VirtReg, const LiveRange &Range); 93 void extract(LiveInterval &VirtReg, const LiveRange &Range);
|
/external/llvm/lib/CodeGen/ |
D | LiveInterval.cpp | 52 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 …]
|
D | LiveRangeCalc.h | 80 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,
|
D | LiveIntervalAnalysis.cpp | 159 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 …]
|
D | LiveIntervalUnion.cpp | 29 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()
|
D | LiveRegMatrix.cpp | 104 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()
|
D | LiveRangeCalc.cpp | 44 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()
|
D | MachineVerifier.cpp | 216 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 …]
|
D | RegisterCoalescer.cpp | 166 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 …]
|
D | RegisterPressure.cpp | 174 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/ |
D | SILoadStoreOptimizer.cpp | 276 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/ |
D | badCallArgLRLLVM.ll | 6 ; so no LiveRange has been created for its return value.
|