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");
68 // current live interval.
91 // If CurLI is live into a landing pad successor, move the last split point
102 // really be live-in to the landing pad. This can happen if the landing pad
108 // Value is properly live-in to the landing pad.
148 // Compute per-live block info.
150 // FIXME: calcLiveBlockInfo found inconsistencies in the live range.
154 DEBUG(dbgs() << "*** Fixing inconsistent live interval! ***\n");
161 assert(fixed && "Couldn't fix broken live interval");
171 /// where CurLI is live.
185 // Loop over basic blocks where CurLI is live.
193 // If the block contains no uses, the range must be live through. At one
212 // LVI is the first live segment overlapping MBB.
215 // When not live in, the first use should be a def.
222 // Look for gaps in the live range.
233 // There is a gap in the live range. Create duplicate entries for the
234 // live-in snippet and the live-out snippet.
237 // Push the Live-in part.
242 // Set up BI for the live-out part.
261 // Live segment ends exactly at Stop. Move to the next segment.
284 // Loop over basic blocks where li is live.
417 // by a trivial live range.
455 /// Create a new virtual register and live interval.
480 DEBUG(dbgs() << ": not live\n");
497 DEBUG(dbgs() << ": not live\n");
516 DEBUG(dbgs() << ": not live\n");
543 // The interval must be live beyond the instruction at Idx.
547 DEBUG(dbgs() << ": not live\n");
554 // In spill mode, make live ranges as short as possible by inserting the copy
557 // the source live range. The spiller also won't try to hoist this copy.
574 // The interval must be live into the instruction at Idx.
578 DEBUG(dbgs() << ": not live\n");
596 DEBUG(dbgs() << ": not live\n");
651 // want to avoid calculating the live range of the source register if
741 assert(ParentVNI && "Parent not live at complement def");
824 /// transferValues - Transfer all possible values to the new live ranges.
876 // so the live range is accurate. Add live-in blocks in [Start;End) to the
882 // The first block may be live-in, or it may have its own def.
887 // MBB has its own def. Is it also live-out?
891 // Skip to the next block for live-in.
896 // Handle the live-in blocks covered by [Start;End).
897 assert(Start <= BlockStart && "Expected live-in block");
902 // This block has the def of a parent PHI, so it isn't live-in.
907 LRC.setLiveOutValue(MBB, VNI); // Live-out as well.
909 // This block needs a live-in value. The last block covered may not
910 // be live-out.
914 // Live
937 // Extend live ranges to be live-out for successor PHI values.
951 // The predecessor may not have a live-out value. That is OK, like an
999 // We may wan't to extend a live range for a partial redef, or for a use
1042 // At this point, the live intervals in Edit contain VNInfos corresponding to
1056 // The new live ranges may be truncated.
1137 // Splitting a live-through range always makes progress.
1164 // Global Live Range Splitting Support
1167 // These methods support a method of global live range splitting that uses a
1182 << ", live-through " << IntvIn << " -> " << IntvOut);
1196 // |-----------| Live through.
1210 // |-----------| Live through.
1223 // |-----------| Live through.
1240 // |-----------| Live through.
1261 // |-----------| Live through.
1289 assert(BI.LiveIn && "Must be live-in");
1309 // |---o---o---| Live-out on stack.
1313 // |---o---o--o| Live-out on stack, late last use.
1315 // \_____ Stack interval is live-out.
1344 // |---o---o---| Live-out on stack.
1357 // |---o---o--o| Live-out on stack, late last use.
1359 // \_____ Stack interval is live-out.
1383 assert(BI.LiveOut && "Must be live-out");
1402 // |---o---o---| Live-through, stack-in.
1418 // |---o---o---| Live-through, stack-in.