Lines Matching refs:LiveRange
242 friend class LiveRange; // Assigns to start_.
271 friend class LiveRange;
276 class LiveRange: public ZoneObject {
280 LiveRange(int id, Zone* zone);
284 LiveRange* parent() const { return parent_; }
285 LiveRange* TopLevel() { return (parent_ == NULL) ? this : parent_; }
286 LiveRange* next() const { return next_; }
323 void SplitAt(LifetimePosition position, LiveRange* result, Zone* zone);
360 bool ShouldBeAllocatedBefore(const LiveRange* other) const;
363 LifetimePosition FirstIntersection(LiveRange* other);
399 LiveRange* parent_;
400 LiveRange* next_;
427 const ZoneList<LiveRange*>* live_ranges() const { return &live_ranges_; }
428 const Vector<LiveRange*>* fixed_live_ranges() const {
431 const Vector<LiveRange*>* fixed_double_live_ranges() const {
495 LiveRange* LiveRangeFor(LOperand* operand);
504 void AddToActive(LiveRange* range);
505 void AddToInactive(LiveRange* range);
506 void AddToUnhandledSorted(LiveRange* range);
507 void AddToUnhandledUnsorted(LiveRange* range);
510 void ActiveToHandled(LiveRange* range);
511 void ActiveToInactive(LiveRange* range);
512 void InactiveToHandled(LiveRange* range);
513 LiveRange* range);
514 void FreeSpillSlot(LiveRange* range);
515 LOperand* TryReuseSpillSlot(LiveRange* range);
518 bool TryAllocateFreeReg(LiveRange* range);
519 void AllocateBlockedReg(LiveRange* range);
529 LiveRange* SplitRangeAt(LiveRange* range, LifetimePosition pos);
532 LiveRange* SplitBetween(LiveRange* range,
543 void SpillAfter(LiveRange* range, LifetimePosition pos);
546 void SpillBetween(LiveRange* range,
552 void SpillBetweenUntil(LiveRange* range,
557 void SplitAndSpillIntersecting(LiveRange* range);
561 LifetimePosition FindOptimalSpillingPos(LiveRange* range,
564 void Spill(LiveRange* range);
568 void ResolveControlFlow(LiveRange* range,
572 inline void SetLiveRangeAssignedRegister(LiveRange* range, int reg);
585 LiveRange* FixedLiveRangeFor(int index);
586 LiveRange* FixedDoubleLiveRangeFor(int index);
587 LiveRange* LiveRangeFor(int index);
608 ZoneList<LiveRange*> live_ranges_;
611 EmbeddedVector<LiveRange*, Register::kMaxNumAllocatableRegisters>
613 EmbeddedVector<LiveRange*, DoubleRegister::kMaxNumAllocatableRegisters>
615 ZoneList<LiveRange*> unhandled_live_ranges_;
616 ZoneList<LiveRange*> active_live_ranges_;
617 ZoneList<LiveRange*> inactive_live_ranges_;
618 ZoneList<LiveRange*> reusable_slots_;