Home
last modified time | relevance | path

Searched refs:LiveInterval (Results 1 – 14 of 14) sorted by relevance

/art/compiler/optimizing/
Dregister_allocator_linear_scan.h33 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 …]
Dlive_interval_test.cc26 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 …]
Dregister_allocator.h32 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;
Dregister_allocator_linear_scan.cc40 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 …]
Dregister_allocator.cc76 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 …]
Dssa_liveness_analysis.cc59 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 …]
Dregister_allocation_resolver.h32 class LiveInterval; variable
52 ArrayRef<LiveInterval* const> temp_intervals);
62 void ConnectSiblings(LiveInterval* interval);
65 void ConnectSplitSiblings(LiveInterval* interval, HBasicBlock* from, HBasicBlock* to) const;
Dssa_liveness_analysis.h99 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 …]
Dregister_allocation_resolver.cc39 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 …]
Dregister_allocator_test.cc55 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 …]
Dlive_ranges_test.cc72 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()
Doptimizing_unit_test.h93 inline LiveInterval* BuildInterval(const size_t ranges[][2],
98 LiveInterval* interval =
99 LiveInterval::MakeInterval(allocator, DataType::Type::kInt32, defined_by);
Dgraph_visualizer.cc704 LiveInterval* interval = instruction->GetLiveInterval(); in PrintInstruction()
Dnodes.h78 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_;