Lines Matching refs:LiveInterval
66 static bool ShouldProcess(bool processing_core_registers, LiveInterval* interval) {
93 LiveInterval* interval = physical_register_intervals_.Get(reg);
95 interval = LiveInterval::MakeFixedInterval(allocator_, reg, type);
117 LiveInterval* current = instruction->GetLiveInterval();
160 LiveInterval* split = Split(current, first_register_use - 1);
179 explicit AllRangesIterator(LiveInterval* interval)
185 LiveInterval* CurrentInterval() const { return current_interval_; }
198 LiveInterval* current_interval_;
207 GrowableArray<LiveInterval*> intervals(allocator_, 0);
216 LiveInterval* fixed = physical_register_intervals_.Get(i);
226 bool RegisterAllocator::ValidateIntervals(const GrowableArray<LiveInterval*>& intervals,
246 LiveInterval* current = it.CurrentInterval();
294 void RegisterAllocator::DumpInterval(std::ostream& stream, LiveInterval* interval) const {
313 LiveInterval* current = unhandled_.Pop();
321 LiveInterval* interval = active_.Get(i);
336 LiveInterval* interval = inactive_.Get(i);
366 bool RegisterAllocator::TryAllocateFreeReg(LiveInterval* current) {
379 LiveInterval* inactive = inactive_.Get(i);
389 LiveInterval* interval = active_.Get(i);
414 LiveInterval* split = Split(current, free_until[reg]);
431 bool RegisterAllocator::AllocateBlockedReg(LiveInterval* current) {
447 LiveInterval* active = active_.Get(i);
464 LiveInterval* inactive = inactive_.Get(i);
494 LiveInterval* split = Split(current, first_register_use - 1);
503 LiveInterval* active = active_.Get(i);
506 LiveInterval* split = Split(active, current->GetStart());
515 LiveInterval* inactive = inactive_.Get(i);
520 LiveInterval* split = Split(current, next_intersection);
523 LiveInterval* split = Split(inactive, current->GetStart());
537 void RegisterAllocator::AddToUnhandled(LiveInterval* interval) {
540 LiveInterval* current = unhandled_.Get(i - 1);
549 LiveInterval* RegisterAllocator::Split(LiveInterval* interval, size_t position) {
557 LiveInterval* new_interval = interval->SplitAt(position);
566 void RegisterAllocator::AllocateSpillSlotFor(LiveInterval* interval) {
567 LiveInterval* parent = interval->GetParent();
587 LiveInterval* last_sibling = interval;
600 void RegisterAllocator::AllocateTwoSpillSlots(LiveInterval* parent, size_t end) {
629 void RegisterAllocator::AllocateOneSpillSlot(LiveInterval* parent, size_t end) {
648 static Location ConvertToLocation(LiveInterval* interval) {
802 void RegisterAllocator::ConnectSiblings(LiveInterval* interval) {
803 LiveInterval* current = interval;
836 LiveInterval* next_sibling = current->GetNextSibling();
848 void RegisterAllocator::ConnectSplitSiblings(LiveInterval* interval,
859 LiveInterval* destination = nullptr;
860 LiveInterval* source = nullptr;
862 LiveInterval* current = interval;
899 static Location FindLocationAt(LiveInterval* interval, size_t position) {
900 LiveInterval* current = interval;
912 // TODO: Use pointers of Location inside LiveInterval to avoid doing another iteration.
915 LiveInterval* current = instruction->GetLiveInterval();
957 LiveInterval* interval = current->GetLiveInterval();