Lines Matching full:live
1 //===- LiveIntervals.cpp - Live Interval Analysis -------------------------===//
11 /// basic blocks of the function in DFS order and computes live intervals for
72 OS << "Live intervals for machine function: " << MF.getName() << ":\n";
80 "Live Interval Analysis", false, false)
84 "Live Interval Analysis", false, false)
97 cl::desc("Eagerly compute live intervals for all physreg units."));
107 "Use segment set for the computation of the live ranges of physregs."));
129 // Free the live intervals themselves.
162 // For stress testing, precompute live ranges of all physical register
212 /// Compute the live interval of a virtual register, based on defs and uses.
293 /// Compute the live range of a register unit, based on the uses and defs of
337 /// Precompute the live ranges of any register units that are live-in to an ABI
342 LLVM_DEBUG(dbgs() << "Computing live-in reg-units in ABI blocks.\n");
344 // Keep track of the live range sets allocated.
347 // Check all basic blocks for live-ins.
353 // Create phi-defs at Begin for all live-in registers.
360 // Use segment set to speed-up initial computation of the live range.
393 // Blocks that have already been added to WorkList as live-out.
420 // Extend the live range for VNI to be live at Idx.
428 // The PHI is live, make sure the predecessors are live-out.
433 // A predecessor is not required to have a live-out value for a PHI.
440 // VNI is live-in to MBB.
441 LLVM_DEBUG(dbgs() << " live-in at " << BlockStart << '\n');
444 // Make sure VNI is live-out from the predecessors.
456 // by <undef>s for this live range.
474 // Shrink subregister live ranges.
497 // no live value. It is likely caused by a target getting <undef> flags
513 // Create new live ranges with only minimal live segments per def.
538 // Is the register live before? Otherwise we may have to add a read-undef
558 assert(MI && "No instruction defining live value");
612 // Create a new live ranges with only minimal live segments per def.
659 // If VNI isn't live out from KillMBB, the value is trivially pruned.
666 // VNI is live out of KillMBB.
670 // Find all blocks that are reachable from KillMBB without leaving VNI's live
681 // Check if VNI is live in to MBB.
699 // VNI is live through MBB.
729 // the virtual register live range, cancelling any kills.
748 // Check if any of the regunits are live beyond the end of RI. That could
752 // FOO %5 <--- MI, cancel kill because %eax is live.
838 // A local live range must be fully contained inside the block, meaning it is
840 // live in or out of any block.
842 // It is technically possible to have a PHI-defined live range identical to a
904 /// Check whether use of reg in MI is live-through. Live-through means that
928 // Use a smaller arrays for local live ranges.
969 // If segment ends with live-through use we need to collect its regmask.
991 /// Toolkit used by handleMove to trim or extend live intervals.
1009 // FIXME: UpdateFlags is a workaround that creates live intervals for all
1012 // flags, and postRA passes will use a live register utility instead.
1019 /// Update all live ranges touched by MI, assuming a move from OldIdx to
1077 // precomputed live range.
1087 /// Update a single live range, assuming an instruction has been moved from
1118 // No value live before or after OldIdx? Nothing to do.
1123 // Do we have a value live-in to OldIdx?
1125 // If the live-in value already extends to NewIdx, there is nothing to do.
1129 // Kill flags shouldn't be used while live intervals exist, they will be
1207 // The value is live in to OldIdx
1291 // No value live before or after OldIdx? Nothing to do.
1296 // Do we have a value live-in to OldIdx?
1298 // If the live-in value isn't killed here, then we have no Def at
1299 // OldIdx, moreover the value must be live at NewIdx so there is nothing
1347 // Previously nothing was live after NewIdx, so all we have to do now is
1395 // Value becomes live in.
1400 // Leave the end point of a live def.
1430 // Kill/dead flags shouldn't be used while live intervals exist; they
1683 // Make sure a live interval exists for all register operands in the range.
1698 // did not, throw away any old live interval so it will be
1716 // Don't bother to repair a freshly calculated live interval.