Home | History | Annotate | Download | only in CodeGen

Lines Matching full:live

1 //===-- LiveIntervalAnalysis.cpp - Live Interval Analysis -----------------===//
13 // LiveVariables pass to conservatively compute live intervals for
47 "Live Interval Analysis", false, false)
53 "Live Interval Analysis", false, false)
58 cl::desc("Eagerly compute live intervals for all physreg units."));
68 // here to make sure it is live during TwoAddressInstructionPass and
90 // Free the live intervals themselves.
128 // For stress testing, precompute live ranges of all physical register
178 /// computeVirtRegInterval - Compute the live interval of a virtual register,
232 /// computeRegUnitInterval - Compute the live interval of a register unit, based
267 /// computeLiveInRegUnits - Precompute the live ranges of any register units
268 /// that are live-in to an ABI block somewhere. Register values can appear
273 DEBUG(dbgs() << "Computing live-in reg-units in ABI blocks.\n");
278 // Check all basic blocks for live-ins.
287 // Create phi-defs at Begin for all live-in registers.
314 /// shrinkToUses - After removing some uses of a register, shrink its live
325 // Blocks that have already been added to WorkList as live-out.
338 // no live value. It is likely caused by a target getting <undef> flags
353 // Create a new live interval with only minimal live segments per def.
374 // Extend the live range for VNI to be live at Idx.
381 // The PHI is live, make sure the predecessors are live-out.
387 // A predecessor is not required to have a live-out value for a PHI.
394 // VNI is live-in to MBB.
395 DEBUG(dbgs() << " live-in at " << BlockStart << '\n');
398 // Make sure VNI is live-out from the predecessors.
418 assert(LII != NewLI.end() && "Missing live range for PHI");
430 assert(MI && "No instruction defining live value");
464 // If VNI isn't live out from KillMBB, the value is trivially pruned.
471 // VNI is live out of KillMBB.
475 // Find all blocks that are reachable from KillMBB without leaving VNI's live
488 // Check if VNI is live in to MBB.
492 // This block isn't part of the VNI live range. Prune the search.
505 // VNI is live through MBB.
530 // the virtual register live range, cancelling any kills.
540 // Every instruction that kills Reg corresponds to a live range end point.
550 // Check if any of the reguints are live beyond the end of RI. That could
554 // FOO %vreg5 <--- MI, cancel kill because %EAX is live.
581 // A local live range must be fully contained inside the block, meaning it is
583 // live in or or out of any block.
585 // It is technically possible to have a PHI-defined live range identical to a
653 // Use a smaller arrays for local live ranges.
706 // HMEditor is a toolkit used by handleMove to trim or extend live intervals.
724 // FIXME: UpdateFlags is a workaround that creates live intervals for all
727 // flags, and postRA passes will use a live register utility instead.
734 /// Update all live ranges touched by MI, assuming a move from OldIdx to
758 // precomputed live range.
768 /// Update a single live range, assuming an instruction has been moved from
792 /// 1. Live def at OldIdx:
795 /// 2. Live def at OldIdx, killed at NewIdx:
800 /// Move def to NewIdx, possibly across another live value.
803 /// Remove live range [OldIdx;NewIdx) and value defined at OldIdx.
813 // Is LI even live at OldIdx?
817 // Handle a live-in value.
820 // If the live-in value already extends to NewIdx, there is nothing to do.
824 // Kill flags shouldn't be used while live intervals exist, they will be
853 // 2. Live def at OldIdx, killed at NewIdx: isSameInstr(I->end, NewIdx).
879 /// 1. Live def at OldIdx:
888 /// 4. Live def at OldIdx AND existing def at NewIdx:
900 live at OldIdx?
904 // Handle a live-in value.
906 // If the live-in value isn't killed here, there is nothing to do.
938 // Case 4: Replace def at NewIdx with live def at OldIdx.
946 // Leave the end point of a live def.