Lines Matching refs:LifetimePosition
35 class LifetimePosition final {
39 static LifetimePosition GapFromInstructionIndex(int index) { in GapFromInstructionIndex()
40 return LifetimePosition(index * kStep); in GapFromInstructionIndex()
44 static LifetimePosition InstructionFromInstructionIndex(int index) { in InstructionFromInstructionIndex()
45 return LifetimePosition(index * kStep + kHalfStep); in InstructionFromInstructionIndex()
48 static bool ExistsGapPositionBetween(LifetimePosition pos1, in ExistsGapPositionBetween()
49 LifetimePosition pos2) { in ExistsGapPositionBetween()
51 LifetimePosition next(pos1.value_ + 1); in ExistsGapPositionBetween()
77 LifetimePosition Start() const { in Start()
79 return LifetimePosition(value_ & ~(kHalfStep - 1)); in Start()
83 LifetimePosition FullStart() const { in FullStart()
85 return LifetimePosition(value_ & ~(kStep - 1)); in FullStart()
89 LifetimePosition End() const { in End()
91 return LifetimePosition(Start().value_ + kHalfStep / 2); in End()
95 LifetimePosition NextStart() const { in NextStart()
97 return LifetimePosition(Start().value_ + kHalfStep); in NextStart()
101 LifetimePosition NextFullStart() const { in NextFullStart()
103 return LifetimePosition(FullStart().value_ + kStep); in NextFullStart()
107 LifetimePosition PrevStart() const { in PrevStart()
110 return LifetimePosition(Start().value_ - kHalfStep); in PrevStart()
115 LifetimePosition() : value_(-1) {} in LifetimePosition() function
121 bool operator<(const LifetimePosition& that) const {
125 bool operator<=(const LifetimePosition& that) const {
129 bool operator==(const LifetimePosition& that) const {
133 bool operator!=(const LifetimePosition& that) const {
137 bool operator>(const LifetimePosition& that) const {
141 bool operator>=(const LifetimePosition& that) const {
147 static inline LifetimePosition Invalid() { return LifetimePosition(); } in Invalid()
149 static inline LifetimePosition MaxPosition() { in MaxPosition()
152 return LifetimePosition(kMaxInt); in MaxPosition()
155 static inline LifetimePosition FromInt(int value) { in FromInt()
156 return LifetimePosition(value); in FromInt()
166 explicit LifetimePosition(int value) : value_(value) {} in LifetimePosition() function
172 std::ostream& operator<<(std::ostream& os, const LifetimePosition pos);
178 UseInterval(LifetimePosition start, LifetimePosition end) in UseInterval()
183 LifetimePosition start() const { return start_; } in start()
184 void set_start(LifetimePosition start) { start_ = start; } in set_start()
185 LifetimePosition end() const { return end_; } in end()
186 void set_end(LifetimePosition end) { end_ = end; } in set_end()
192 UseInterval* SplitAt(LifetimePosition pos, Zone* zone);
196 LifetimePosition Intersect(const UseInterval* other) const { in Intersect()
199 return LifetimePosition::Invalid(); in Intersect()
202 bool Contains(LifetimePosition point) const { in Contains()
225 LifetimePosition start_;
226 LifetimePosition end_;
258 UsePosition(LifetimePosition pos, InstructionOperand* operand, void* hint, in NON_EXPORTED_BASE()
270 LifetimePosition pos() const { return pos_; } in NON_EXPORTED_BASE()
301 LifetimePosition const pos_; in NON_EXPORTED_BASE()
349 UsePosition* NextUsePosition(LifetimePosition start) const; in NON_EXPORTED_BASE()
353 UsePosition* NextRegisterPosition(LifetimePosition start) const; in NON_EXPORTED_BASE()
356 UsePosition* NextSlotPosition(LifetimePosition start) const; in NON_EXPORTED_BASE()
361 LifetimePosition start) const; in NON_EXPORTED_BASE()
365 LifetimePosition NextLifetimePositionRegisterIsBeneficial( in NON_EXPORTED_BASE()
366 const LifetimePosition& start) const; in NON_EXPORTED_BASE()
371 LifetimePosition start) const; in NON_EXPORTED_BASE()
374 bool CanBeSpilled(LifetimePosition pos) const; in NON_EXPORTED_BASE()
387 UsePosition* DetachAt(LifetimePosition position, LiveRange* result, in NON_EXPORTED_BASE()
392 LiveRange* SplitAt(LifetimePosition position, Zone* zone); in NON_EXPORTED_BASE()
406 LifetimePosition Start() const { in NON_EXPORTED_BASE()
411 LifetimePosition End() const { in NON_EXPORTED_BASE()
417 bool CanCover(LifetimePosition position) const; in NON_EXPORTED_BASE()
418 bool Covers(LifetimePosition position) const; in NON_EXPORTED_BASE()
419 LifetimePosition FirstIntersection(LiveRange* other) const; in NON_EXPORTED_BASE()
443 UseInterval* FirstSearchIntervalForPosition(LifetimePosition position) const; in NON_EXPORTED_BASE()
445 LifetimePosition but_not_past) const; in NON_EXPORTED_BASE()
496 void EnsureInterval(LifetimePosition start, LifetimePosition end, Zone* zone);
497 void AddUseInterval(LifetimePosition start, LifetimePosition end, Zone* zone);
501 void ShortenTo(LifetimePosition start);
507 void Splinter(LifetimePosition start, LifetimePosition end, Zone* zone);
703 LifetimePosition End() const { return end_position_; } in End()
710 LifetimePosition end_position_;
829 bool IsBlockBoundary(LifetimePosition pos) const;
933 UsePosition* NewUsePosition(LifetimePosition pos, InstructionOperand* operand,
935 UsePosition* NewUsePosition(LifetimePosition pos) { in NewUsePosition()
940 UsePosition* Define(LifetimePosition position, InstructionOperand* operand,
942 void Define(LifetimePosition position, InstructionOperand* operand) { in Define()
945 UsePosition* Use(LifetimePosition block_start, LifetimePosition position,
948 void Use(LifetimePosition block_start, LifetimePosition position, in Use()
977 LifetimePosition GetSplitPositionForInstruction(const LiveRange* range,
992 LiveRange* SplitRangeAt(LiveRange* range, LifetimePosition pos);
1000 LiveRange* SplitBetween(LiveRange* range, LifetimePosition start,
1001 LifetimePosition end);
1006 LifetimePosition FindOptimalSplitPos(LifetimePosition start,
1007 LifetimePosition end);
1013 LifetimePosition FindOptimalSpillingPos(LiveRange* range,
1014 LifetimePosition pos);
1069 const Vector<LifetimePosition>& free_until_pos);
1071 const Vector<LifetimePosition>& free_until_pos);
1075 Vector<LifetimePosition> free_until_pos);
1081 void SpillAfter(LiveRange* range, LifetimePosition pos);
1084 void SpillBetween(LiveRange* range, LifetimePosition start,
1085 LifetimePosition end);
1089 void SpillBetweenUntil(LiveRange* range, LifetimePosition start,
1090 LifetimePosition until, LifetimePosition end);
1099 LifetimePosition allocation_finger_;