Lines Matching full:live

1 //===- SplitKit.cpp - Toolkit for splitting live ranges -------------------===//
10 // live range splitting.
84 // current live interval.
109 // If CurLI is live into a landing pad successor, move the last insert point
132 // really be live-in to the landing pad. This can happen if the landing pad
137 // Value is properly live-in to the landing pad.
190 // Compute per-live block info.
199 /// where CurLI is live.
213 // Loop over basic blocks where CurLI is live.
222 // If the block contains no uses, the range must be live through. At one
240 // LVI is the first live segment overlapping MBB.
243 // When not live in, the first use should be a def.
250 // Look for gaps in the live range.
261 // There is a gap in the live range. Create duplicate entries for the
262 // live-in snippet and the live-out snippet.
265 // Push the Live-in part.
270 // Set up BI for the live-out part.
289 // Live segment ends exactly at Stop. Move to the next segment.
318 // Loop over basic blocks where li is live.
397 /// Find a subrange corresponding to the exact lane mask @p LM in the live
419 /// in the live interval @p LI. The interval @p LI is assumed to contain such
520 // by a trivial live range.
645 /// Create a new virtual register and live interval.
670 LLVM_DEBUG(dbgs() << ": not live\n");
687 LLVM_DEBUG(dbgs() << ": not live\n");
707 LLVM_DEBUG(dbgs() << ": not live\n");
715 // distinct live ranges into individual live intervals), and thus we
717 // pair can live in the resulting interval.
722 LLVM_DEBUG(dbgs() << ": tied use not live\n");
751 // The interval must be live beyond the instruction at Idx.
755 LLVM_DEBUG(dbgs() << ": not live\n");
762 // In spill mode, make live ranges as short as possible by inserting the copy
765 // the source live range. The spiller also won't try to hoist this copy.
782 // The interval must be live into the instruction at Idx.
786 LLVM_DEBUG(dbgs() << ": not live\n");
805 LLVM_DEBUG(dbgs() << ": not live\n");
836 // If the last use is tied to a def, we can't mark it as live for the
877 // avoid calculating the live range of the source register if possible.
1034 assert(ParentVNI && "Parent not live at complement def");
1134 /// transferValues - Transfer all possible values to the new live ranges.
1186 // so the live range is accurate. Add live-in blocks in [Start;End) to the
1192 // The first block may be live-in, or it may have its own def.
1197 // MBB has its own def. Is it also live-out?
1201 // Skip to the next block for live-in.
1206 // Handle the live-in blocks covered by [Start;End).
1207 assert(Start <= BlockStart && "Expected live-in block");
1212 // This block has the def of a parent PHI, so it isn't live-in.
1217 LIC.setLiveOutValue(&*MBB, VNI); // Live-out as well.
1219 // This block needs a live-in value. The last block covered may not
1220 // be live-out.
1224 // Live-through, and we don't know the value.
1261 // The predecessor may not have a live-out value. That is OK, like an
1274 // Extend live ranges to be live-out for successor PHI values.
1276 // Visit each PHI def slot in the parent live interval. If the def is dead,
1277 // remove it. Otherwise, extend the live interval to reach the end indexes
1361 // We may want to extend a live range for a partial redef, or for a use
1369 // We want to extend a live range into `e` slot rather than `r` slot if
1371 // in the live range of early-clobber tied-def operand, give an example
1506 // At this point, the live intervals in Edit contain VNInfos corresponding to
1517 // The new live ranges may be truncated.
1596 // Splitting a live-through range always makes progress.
1624 // Global Live Range Splitting Support
1627 // These methods support a method of global live range splitting that uses a
1642 << ", live-through " << IntvIn << " -> " << IntvOut);
1656 // |-----------| Live through.
1670 // |-----------| Live through.
1683 // |-----------| Live through.
1700 // |-----------| Live through.
1721 // |-----------| Live through.
1749 assert(BI.LiveIn && "Must be live-in");
1769 // |---o---o---| Live-out on stack.
1773 // |---o---o--o| Live-out on stack, late last use.
1775 // \_____ Stack interval is live-out.
1804 // |---o---o---| Live-out on stack.
1817 // |---o---o--o| Live-out on stack, late last use.
1819 // \_____ Stack interval is live-out.
1844 assert(BI.LiveOut && "Must be live-out");
1863 // |---o---o---| Live-through, stack-in.
1879 // |---o---o---| Live-through, stack-in.
1896 << (LiveIn ? "live in" : "dead in") << ", "
1897 << (LiveOut ? "live out" : "dead out") << "}";