Home | History | Annotate | Download | only in compiler

Lines Matching defs:LifetimePosition

38 class LifetimePosition {
42 static LifetimePosition FromInstructionIndex(int index) {
43 return LifetimePosition(index * kStep);
62 LifetimePosition InstructionStart() const {
64 return LifetimePosition(value_ & ~(kStep - 1));
69 LifetimePosition InstructionEnd() const {
71 return LifetimePosition(InstructionStart().Value() + kStep / 2);
75 LifetimePosition NextInstruction() const {
77 return LifetimePosition(InstructionStart().Value() + kStep);
82 LifetimePosition PrevInstruction() const {
85 return LifetimePosition(InstructionStart().Value() - kStep);
90 LifetimePosition() : value_(-1) {}
96 static inline LifetimePosition Invalid() { return LifetimePosition(); }
98 static inline LifetimePosition MaxPosition() {
101 return LifetimePosition(kMaxInt);
110 explicit LifetimePosition(int value) : value_(value) {}
119 UseInterval(LifetimePosition start, LifetimePosition end)
124 LifetimePosition start() const { return start_; }
125 LifetimePosition end() const { return end_; }
130 void SplitAt(LifetimePosition pos, Zone* zone);
134 LifetimePosition Intersect(const UseInterval* other) const {
137 return LifetimePosition::Invalid();
140 bool Contains(LifetimePosition point) const {
144 void set_start(LifetimePosition start) { start_ = start; }
147 LifetimePosition start_;
148 LifetimePosition end_;
155 UsePosition(LifetimePosition pos, InstructionOperand* operand,
166 LifetimePosition pos() const { return pos_; }
173 LifetimePosition const pos_;
211 UsePosition* NextUsePosition(LifetimePosition start);
216 UsePosition* NextRegisterPosition(LifetimePosition start);
221 UsePosition* NextUsePositionRegisterIsBeneficial(LifetimePosition start);
225 UsePosition* PreviousUsePositionRegisterIsBeneficial(LifetimePosition start);
228 bool CanBeSpilled(LifetimePosition pos);
234 void SplitAt(LifetimePosition position, LiveRange* result, Zone* zone);
253 LifetimePosition Start() const {
258 LifetimePosition End() const {
272 bool CanCover(LifetimePosition position) const;
273 bool Covers(LifetimePosition position);
274 LifetimePosition FirstIntersection(LiveRange* other);
277 void EnsureInterval(LifetimePosition start, LifetimePosition end, Zone* zone);
278 void AddUseInterval(LifetimePosition start, LifetimePosition end, Zone* zone);
279 void AddUsePosition(LifetimePosition pos, InstructionOperand* operand,
283 void ShortenTo(LifetimePosition start);
293 UseInterval* FirstSearchIntervalForPosition(LifetimePosition position) const;
295 LifetimePosition but_not_past) const;
401 void Define(LifetimePosition position, InstructionOperand* operand,
403 void Use(LifetimePosition block_start, LifetimePosition position,
434 LiveRange* SplitRangeAt(LiveRange* range, LifetimePosition pos);
437 LiveRange* SplitBetween(LiveRange* range, LifetimePosition start,
438 LifetimePosition end);
443 LifetimePosition FindOptimalSplitPos(LifetimePosition start,
444 LifetimePosition end);
447 void SpillAfter(LiveRange* range, LifetimePosition pos);
450 void SpillBetween(LiveRange* range, LifetimePosition start,
451 LifetimePosition end);
455 void SpillBetweenUntil(LiveRange* range, LifetimePosition start,
456 LifetimePosition until, LifetimePosition end);
462 LifetimePosition FindOptimalSpillingPos(LiveRange* range,
463 LifetimePosition pos);
466 bool IsBlockBoundary(LifetimePosition pos);
476 ParallelMove* GetConnectingParallelMove(LifetimePosition pos);
479 BasicBlock* GetBlock(LifetimePosition pos);
526 LifetimePosition allocation_finger_;