Home | History | Annotate | Download | only in CodeGen

Lines Matching full:live

1 //===---------- SplitKit.cpp - Toolkit for splitting live ranges ----------===//
11 // live range splitting.
36 STATISTIC(NumRepairs, "Number of invalid live ranges repaired");
67 // current live interval.
90 // If CurLI is live into a landing pad successor, move the last split point
125 // Compute per-live block info.
127 // FIXME: calcLiveBlockInfo found inconsistencies in the live range.
131 DEBUG(dbgs() << "*** Fixing inconsistent live interval! ***\n");
138 assert(fixed && "Couldn't fix broken live interval");
148 /// where CurLI is live.
162 // Loop over basic blocks where CurLI is live.
170 // If the block contains no uses, the range must be live through. At one
189 // LVI is the first live segment overlapping MBB.
192 // When not live in, the first use should be a def.
199 // Look for gaps in the live range.
210 // There is a gap in the live range. Create duplicate entries for the
211 // live-in snippet and the live-out snippet.
214 // Push the Live-in part.
219 // Set up BI for the live-out part.
238 // Live segment ends exactly at Stop. Move to the next segment.
261 // Loop over basic blocks where li is live.
394 // by a trivial live range.
434 /// Create a new virtual register and live interval.
459 DEBUG(dbgs() << ": not live\n");
476 DEBUG(dbgs() << ": not live\n");
495 DEBUG(dbgs() << ": not live\n");
522 // The interval must be live beyond the instruction at Idx.
526 DEBUG(dbgs() << ": not live\n");
533 // In spill mode, make live ranges as short as possible by inserting the copy
536 // the source live range. The spiller also won't try to hoist this copy.
553 // The interval must be live into the instruction at Idx.
557 DEBUG(dbgs() << ": not live\n");
575 DEBUG(dbgs() << ": not live\n");
630 // want to avoid calculating the live range of the source register if
720 assert(ParentVNI && "Parent not live at complement def");
803 /// transferValues - Transfer all possible values to the new live ranges.
855 // so the live range is accurate. Add live-in blocks in [Start;End) to the
861 // The first block may be live-in, or it may have its own def.
866 // MBB has its own def. Is it also live-out?
870 // Skip to the next block for live-in.
875 // Handle the live-in blocks covered by [Start;End).
876 assert(Start <= BlockStart && "Expected live-in block");
881 // This block has the def of a parent PHI, so it isn't live-in.
886 LRC.setLiveOutValue(MBB, VNI); // Live-out as well.
888 // This block needs a live-in value. The last block covered may not
889 // be live-out.
893 // Live-through, and we don't know the value.
916 // Extend live ranges to be live-out for successor PHI values.
930 // The predecessor may not have a live-out value. That is OK, like an
978 // We may wan't to extend a live range for a partial redef, or for a use
1021 // At this point, the live intervals in Edit contain VNInfos corresponding to
1036 // The new live ranges may be truncated.
1118 // Splitting a live-through range always makes progress.
1145 // Global Live Range Splitting Support
1148 // These methods support a method of global live range splitting that uses a
1163 << ", live-through " << IntvIn << " -> " << IntvOut);
1177 // |-----------| Live through.
1191 // |-----------| Live through.
1204 // |-----------| Live through.
1221 // |-----------| Live through.
1242 // |-----------| Live through.
1270 assert(BI.LiveIn && "Must be live-in");
1290 // |---o---o---| Live-out on stack.
1294 // |---o---o--o| Live-out on stack, late last use.
1296 // \_____ Stack interval is live-out.
1325 // |---o---o---| Live-out on stack.
1338 // |---o---o--o| Live-out on stack, late last use.
1340 // \_____ Stack interval is live-out.
1364 assert(BI.LiveOut && "Must be live-out");
1383 // |---o---o---| Live-through, stack-in.
1399 // |---o---o---| Live-through, stack-in.