/art/compiler/optimizing/ |
D | register_allocator_linear_scan.h | 33 class LiveInterval; variable 69 bool TryAllocateFreeReg(LiveInterval* interval); 70 bool AllocateBlockedReg(LiveInterval* interval); 73 static void AddSorted(ScopedArenaVector<LiveInterval*>* array, LiveInterval* interval); 83 void AllocateSpillSlotFor(LiveInterval* interval); 94 void DumpInterval(std::ostream& stream, LiveInterval* interval) const; 97 int FindAvailableRegister(size_t* next_use, LiveInterval* current) const; 132 ScopedArenaVector<LiveInterval*> unhandled_core_intervals_; 135 ScopedArenaVector<LiveInterval*> unhandled_fp_intervals_; 139 ScopedArenaVector<LiveInterval*>* unhandled_; [all …]
|
D | live_interval_test.cc | 26 TEST(LiveInterval, GetStart) { in TEST() argument 32 LiveInterval* interval = BuildInterval(ranges, arraysize(ranges), allocator); in TEST() 38 LiveInterval* interval = BuildInterval(ranges, arraysize(ranges), allocator); in TEST() 43 TEST(LiveInterval, IsDeadAt) { in TEST() argument 49 LiveInterval* interval = BuildInterval(ranges, arraysize(ranges), allocator); in TEST() 59 LiveInterval* interval = BuildInterval(ranges, arraysize(ranges), allocator); in TEST() 71 TEST(LiveInterval, Covers) { in TEST() argument 77 LiveInterval* interval = BuildInterval(ranges, arraysize(ranges), allocator); in TEST() 87 LiveInterval* interval = BuildInterval(ranges, arraysize(ranges), allocator); in TEST() 99 TEST(LiveInterval, FirstIntersectionWith) { in TEST() argument [all …]
|
D | register_allocator.h | 32 class LiveInterval; variable 61 static bool ValidateIntervals(ArrayRef<LiveInterval* const> intervals, 79 static LiveInterval* Split(LiveInterval* interval, size_t position); 83 LiveInterval* SplitBetween(LiveInterval* interval, size_t from, size_t to); 96 uint32_t GetRegisterMask(LiveInterval* interval, RegisterType register_type) const;
|
D | register_allocator_linear_scan.cc | 40 static bool IsLowOfUnalignedPairInterval(LiveInterval* low) { in IsLowOfUnalignedPairInterval() 57 LiveInterval::MakeFixedInterval(allocator, kNoRegister, DataType::Type::kVoid)), in RegisterAllocatorLinearScan() 59 LiveInterval::MakeFixedInterval(allocator, kNoRegister, DataType::Type::kVoid)), in RegisterAllocatorLinearScan() 101 ArrayRef<LiveInterval* const>(temp_intervals_)); in AllocateRegisters() 143 LiveInterval* interval = location.IsRegister() in BlockRegister() 150 interval = LiveInterval::MakeFixedInterval(allocator_, reg, type); in BlockRegister() 191 for (LiveInterval* block_registers_interval : { block_registers_for_call_interval_, in AllocateRegistersInternal() 198 for (LiveInterval* fixed : physical_core_register_intervals_) { in AllocateRegistersInternal() 220 for (LiveInterval* block_registers_interval : { block_registers_for_call_interval_, in AllocateRegistersInternal() 227 for (LiveInterval* fixed : physical_fp_register_intervals_) { in AllocateRegistersInternal() [all …]
|
D | register_allocator.cc | 76 LiveInterval* bad_live_interval = reinterpret_cast<LiveInterval*>(0xebad7113u); in ~RegisterAllocator() 90 explicit AllRangesIterator(LiveInterval* interval) in AllRangesIterator() 96 LiveInterval* CurrentInterval() const { return current_interval_; } in CurrentInterval() 109 LiveInterval* current_interval_; 129 uint32_t RegisterAllocator::GetRegisterMask(LiveInterval* interval, in GetRegisterMask() 154 bool RegisterAllocator::ValidateIntervals(ArrayRef<LiveInterval* const> intervals, in ValidateIntervals() 171 auto get_register_mask = [&](LiveInterval* interval) { in ValidateIntervals() 196 for (LiveInterval* start_interval : intervals) { in ValidateIntervals() 209 for (LiveInterval* start_interval : intervals) { in ValidateIntervals() 211 LiveInterval* current = it.CurrentInterval(); in ValidateIntervals() [all …]
|
D | ssa_liveness_analysis.cc | 59 LiveInterval::MakeInterval(allocator_, current->GetType(), current)); in NumberInstructions() 77 LiveInterval::MakeInterval(allocator_, current->GetType(), current)); in NumberInstructions() 250 LiveInterval* interval = current->GetLiveInterval(); in ComputeLiveRanges() 314 void LiveInterval::DumpWithContext(std::ostream& stream, in DumpWithContext() 339 int LiveInterval::FindFirstRegisterHint(size_t* free_until, in FindFirstRegisterHint() 365 LiveInterval* existing = GetParent()->GetSiblingAt(position); in FindFirstRegisterHint() 436 int LiveInterval::FindHintAtDefinition() const { in FindHintAtDefinition() 443 LiveInterval* input_interval = inputs[i]->GetLiveInterval()->GetSiblingAt(end - 1); in FindHintAtDefinition() 459 LiveInterval* input_interval = in FindHintAtDefinition() 475 bool LiveInterval::SameRegisterKind(Location other) const { in SameRegisterKind() [all …]
|
D | register_allocation_resolver.h | 32 class LiveInterval; variable 52 ArrayRef<LiveInterval* const> temp_intervals); 62 void ConnectSiblings(LiveInterval* interval); 65 void ConnectSplitSiblings(LiveInterval* interval, HBasicBlock* from, HBasicBlock* to) const;
|
D | ssa_liveness_analysis.h | 99 friend class LiveInterval; variable 275 class LiveInterval : public ArenaObject<kArenaAllocSsaLiveness> { 277 static LiveInterval* MakeInterval(ScopedArenaAllocator* allocator, 280 return new (allocator) LiveInterval(allocator, type, instruction); 283 static LiveInterval* MakeFixedInterval(ScopedArenaAllocator* allocator, in MakeFixedInterval() 286 return new (allocator) LiveInterval(allocator, type, nullptr, true, reg, false); in MakeFixedInterval() 289 static LiveInterval* MakeTempInterval(ScopedArenaAllocator* allocator, DataType::Type type) { in MakeTempInterval() 290 return new (allocator) LiveInterval(allocator, type, nullptr, false, kNoRegister, true); in MakeTempInterval() 470 LiveInterval* GetParent() const { return parent_; } in GetParent() 510 size_t FirstIntersectionWith(LiveInterval* current) const { in FirstIntersectionWith() [all …]
|
D | register_allocation_resolver.cc | 39 ArrayRef<LiveInterval* const> temp_intervals) { in Resolve() 60 LiveInterval* current = instruction->GetLiveInterval(); in Resolve() 160 LiveInterval* interval = liveness_.GetInstructionFromSsaIndex(idx)->GetLiveInterval(); in Resolve() 161 LiveInterval* sibling = interval->GetSiblingAt(block->GetLifetimeStart()); in Resolve() 173 LiveInterval* interval = liveness_.GetInstructionFromSsaIndex(idx)->GetLiveInterval(); in Resolve() 202 for (LiveInterval* temp : temp_intervals) { in Resolve() 235 for (LiveInterval* current = instruction->GetLiveInterval(); in UpdateSafepointLiveRegisters() 298 void RegisterAllocationResolver::ConnectSiblings(LiveInterval* interval) { in ConnectSiblings() 299 LiveInterval* current = interval; in ConnectSiblings() 376 LiveInterval* next_sibling = current->GetNextSibling(); in ConnectSiblings() [all …]
|
D | register_allocator_test.cc | 55 bool ValidateIntervals(const ScopedArenaVector<LiveInterval*>& intervals, in ValidateIntervals() 57 return RegisterAllocator::ValidateIntervals(ArrayRef<LiveInterval* const>(intervals), in ValidateIntervals() 87 ScopedArenaVector<LiveInterval*> intervals(GetScopedAllocator()->Adapter()); in TEST_F() 315 LiveInterval* phi_interval = phi->GetLiveInterval(); in TEST_F() 316 LiveInterval* loop_update = phi->InputAt(1)->GetLiveInterval(); in TEST_F() 342 LiveInterval* interval = first_xor->GetLiveInterval(); in TEST_F() 355 LiveInterval* new_interval = interval->SplitAt(last_xor->GetLifetimePosition() - 1); in TEST_F() 414 LiveInterval* unhandled = graph->GetEntryBlock()->GetFirstInstruction()->GetLiveInterval(); in TEST_F() 430 LiveInterval* interval = in TEST_F() 431 LiveInterval::MakeFixedInterval(GetScopedAllocator(), 0, DataType::Type::kInt32); in TEST_F() [all …]
|
D | live_ranges_test.cc | 72 LiveInterval* interval = liveness.GetInstructionFromSsaIndex(0)->GetLiveInterval(); in TEST_F() 116 LiveInterval* interval = liveness.GetInstructionFromSsaIndex(0)->GetLiveInterval(); in TEST_F() 164 LiveInterval* interval = liveness.GetInstructionFromSsaIndex(1)->GetLiveInterval(); in TEST_F() 239 LiveInterval* interval = graph->GetIntConstant(0)->GetLiveInterval(); in TEST_F() 315 LiveInterval* interval = constant->GetLiveInterval(); in TEST_F() 388 LiveInterval* interval = liveness.GetInstructionFromSsaIndex(0)->GetLiveInterval(); in TEST_F()
|
D | optimizing_unit_test.h | 93 inline LiveInterval* BuildInterval(const size_t ranges[][2], 98 LiveInterval* interval = 99 LiveInterval::MakeInterval(allocator, DataType::Type::kInt32, defined_by);
|
D | graph_visualizer.cc | 704 LiveInterval* interval = instruction->GetLiveInterval(); in PrintInstruction()
|
D | nodes.h | 78 class LiveInterval; variable 2652 LiveInterval* GetLiveInterval() const { return live_interval_; } in GetLiveInterval() 2653 void SetLiveInterval(LiveInterval* interval) { live_interval_ = interval; } in SetLiveInterval() 2832 LiveInterval* live_interval_;
|