Lines Matching refs:LiveRange

181 class LiveRange : public ZoneObject {
185 LiveRange(int id, Zone* zone);
189 LiveRange* parent() const { return parent_; } in parent()
190 LiveRange* TopLevel() { return (parent_ == NULL) ? this : parent_; } in TopLevel()
191 LiveRange* next() const { return next_; } in next()
234 void SplitAt(LifetimePosition position, LiveRange* result, Zone* zone);
271 bool ShouldBeAllocatedBefore(const LiveRange* other) const;
274 LifetimePosition FirstIntersection(LiveRange* other);
306 LiveRange* parent_;
307 LiveRange* next_;
335 const ZoneList<LiveRange*>* live_ranges() const { return &live_ranges_; } in live_ranges()
336 const Vector<LiveRange*>* fixed_live_ranges() const { in fixed_live_ranges()
339 const Vector<LiveRange*>* fixed_double_live_ranges() const { in fixed_double_live_ranges()
400 LiveRange* LiveRangeFor(InstructionOperand* operand);
409 void AddToActive(LiveRange* range);
410 void AddToInactive(LiveRange* range);
411 void AddToUnhandledSorted(LiveRange* range);
412 void AddToUnhandledUnsorted(LiveRange* range);
415 void ActiveToHandled(LiveRange* range);
416 void ActiveToInactive(LiveRange* range);
417 void InactiveToHandled(LiveRange* range);
418 void InactiveToActive(LiveRange* range);
419 void FreeSpillSlot(LiveRange* range);
420 InstructionOperand* TryReuseSpillSlot(LiveRange* range);
423 bool TryAllocateFreeReg(LiveRange* range);
424 void AllocateBlockedReg(LiveRange* range);
434 LiveRange* SplitRangeAt(LiveRange* range, LifetimePosition pos);
437 LiveRange* SplitBetween(LiveRange* range, LifetimePosition start,
447 void SpillAfter(LiveRange* range, LifetimePosition pos);
450 void SpillBetween(LiveRange* range, LifetimePosition start,
455 void SpillBetweenUntil(LiveRange* range, LifetimePosition start,
458 void SplitAndSpillIntersecting(LiveRange* range);
462 LifetimePosition FindOptimalSpillingPos(LiveRange* range,
465 void Spill(LiveRange* range);
469 void ResolveControlFlow(LiveRange* range, BasicBlock* block,
472 inline void SetLiveRangeAssignedRegister(LiveRange* range, int reg);
485 LiveRange* FixedLiveRangeFor(int index);
486 LiveRange* FixedDoubleLiveRangeFor(int index);
487 LiveRange* LiveRangeFor(int index);
504 ZoneList<LiveRange*> live_ranges_;
507 EmbeddedVector<LiveRange*, Register::kMaxNumAllocatableRegisters>
509 EmbeddedVector<LiveRange*, DoubleRegister::kMaxNumAllocatableRegisters>
511 ZoneList<LiveRange*> unhandled_live_ranges_;
512 ZoneList<LiveRange*> active_live_ranges_;
513 ZoneList<LiveRange*> inactive_live_ranges_;
514 ZoneList<LiveRange*> reusable_slots_;