Lines Matching full:live
49 STATISTIC(NumGlobalSplits, "Number of split global live ranges");
50 STATISTIC(NumLocalSplits, "Number of split local live ranges");
55 cl::desc("Spill mode for splitting live ranges"),
87 // Live ranges pass through a number of stages as we try to allocate them.
88 // Some of the stages may also create new live ranges:
97 // that are unlikely to give any results. It also guarantees that the live
101 /// Newly created live range that has never been queued.
107 /// Attempt live range splitting if assignment is impossible.
110 /// Attempt more aggressive live range splitting that is guaranteed to make
115 /// Live range will be spilled. No more splitting will be attempted.
118 /// There is nothing more we can do to this live range. Abort compilation
125 // RegInfo - Keep additional information about each live range.
182 /// Global live range splitting candidate info.
193 // Bundles where this candidate should be live.
205 // Set B[i] = C for every live bundle where B[i] was NoCand.
400 // Prioritize live ranges by size, assigning larger ranges first.
524 /// shouldEvict - determine if A should evict the assigned live range B. The
532 /// @param A The live range to be assigned.
535 /// @param B The live range to be evicted.
552 /// @param VirtReg Live range that is about to be assigned.
584 // Check if any interfering live range is heavier than MaxWeight.
592 // Once a live range becomes small enough, it is urgent that we find a
594 // urgent live ranges get to evict almost anything.
602 // Only evict older cascades or live ranges without a cascade.
622 // Evicting another local live range in this case could lead to suboptimal
643 // number to every evicted register. These live ranges than then only be
780 // Interference for the live-in value.
790 // Interference for the live-out value.
814 /// live-through blocks in Blocks.
839 // Interference for the live-in value.
845 // Interference for the live-out value.
913 /// calcCompactRegion - Compute the set of edge bundles that should be live
914 /// when splitting the current live range into compact regions. Compact
916 /// regions formed by removing all the live-through blocks from the live range.
918 /// Returns false if the current live range is already compact, or if the
921 // Without any through blocks, the live range is already compact.
930 // Use the spill placer to determine the live bundles. GrowRegion pretends
958 /// calcSpillCost - Compute how expensive it would be to split the live range in
1014 // live-in / stack-out or stack-in live-out.
1020 /// splitAroundRegion - Split the current live range around the regions
1026 /// objects must be initialized for the current live range, and intervals
1088 // Handle live-through blocks. The relevant live-through blocks are stored in
1152 // Global intervals. Allow repeated splitting as long as the number of live
1169 MF->verify(this, "After splitting live range around region");
1179 // Check if we can split this live range around a compact region.
1238 // No live bundles, defer to splitSingleBlocks().
1304 /// tryBlockSplit - Split a global live range around every block with uses. This
1305 /// creates a lot of local live ranges, that will be split by tryLocalSplit if
1309 assert(&SA->getParent() == &VirtReg && "Live range wasn't analyzed");
1342 MF->verify(this, "After splitting live range around basic blocks");
1351 /// tryInstructionSplit - Split a live range around individual instructions.
1353 /// same thing. However, when the live range is in a constrained register
1354 /// class, it may help to insert copies such that parts of the live range can
1498 // Note that it is possible to have an interval that is live-in or live-out
1517 // If VirtReg is live across any register mask operands, compute a list of
1524 // Constrain to VirtReg's live range.
1534 // overlap the live range.
1548 // creating infinite loops. It is tempting to require that the new live
1550 // convergence, but it is too strict. A live range with 3 instructions can be
1599 // Live before/after split?
1712 // Live Range Splitting
1738 // FIXME: SplitAnalysis may repair broken live ranges coming from the
1778 // Try to evict a less worthy live range, but only for ranges from the primary
1787 // The first time we see a live range, don't try to split or spill.
1816 // The live virtual register requesting allocation was spilled, so tell