Home | History | Annotate | Download | only in optimizing

Lines Matching full:interval

102  * A use position represents a live interval use at a given position.
202 * An interval is a list of disjoint live ranges where an instruction is live.
203 * Each instruction that has uses gets an interval.
229 // This interval is the result of a split.
311 // First time we see a use of that interval.
322 // There is a hole in the interval. Create a new range.
353 // There is a hole in the interval. Create a new range.
408 // Returns whether this interval is the parent interval, that is, the interval
428 // Returns true if the interval contains a LiveRange covering `position`.
444 // Returns the first intersection of this interval with `current`, which
445 // must be the interval currently being allocated by linear scan.
457 // this interval.
568 * Split this interval at `position`. This interval is changed to:
571 * The new interval covers:
616 // and return the new interval.
625 // (i.e. the end of the interval) in the original interval.
631 // This range covers position. We create a new last_range_ for this interval
633 // range and make it the first range of the new interval.
646 // in the original interval. This is conservative but always correct.
715 // Returns whether the interval needs two (Dex virtual register size `kVRegSize`)
723 // Converts the location of the interval to a `Location` object.
726 // Returns the location of the interval following its siblings at `position`.
795 // Returns whether an interval, when it is non-split, is using
801 LiveInterval* interval = it.Current()->GetLiveInterval();
803 // Find the interval that covers `defined_by`_. Calls to this function
805 while (interval != nullptr && !interval->CoversSlow(defined_by_->GetLifetimePosition())) {
806 interval = interval->GetNextSibling();
810 if (interval != nullptr
811 && interval->SameRegisterKind(*this)
812 && interval->GetRegister() == GetRegister()) {
820 // Returns whether an interval, when it is non-split, can safely use
832 LiveInterval* interval = it.Current()->GetLiveInterval();
834 // Find the interval that covers `defined_by`_. Calls to this function
836 while (interval != nullptr && !interval->CoversSlow(defined_by_->GetLifetimePosition())) {
837 interval = interval->GetNextSibling();
840 if (interval != nullptr
841 && interval->SameRegisterKind(*this)
842 && interval->GetRegister() == GetRegister()) {
845 return !interval->CoversSlow(defined_by_->GetLifetimePosition() + 1);
932 // This interval is the first interval of the instruction. If the output
1027 // This interval is defined in the loop. We can stop going outward.
1072 // Ranges of this interval. We need a quick access to the last range to test
1081 // Safepoints where this interval is live.
1085 // Uses of this interval. Note that this linked list is shared amongst siblings.
1089 // The instruction type this interval corresponds to.
1092 // Live interval that is the result of a split.
1095 // The first interval from which split intervals come from.
1098 // The register allocated to this interval.
1101 // The spill slot allocated to this interval.
1104 // Whether the interval is for a fixed register.
1107 // Whether the interval is for a temporary.
1110 // Whether the interval is for a safepoint that calls on slow path.
1113 // Whether this interval is a synthesized interval for register pair.
1116 // If this interval needs a register pair, the high or low equivalent.
1120 // The instruction represented by this interval.