Lines Matching full:live
50 STATISTIC(NumGlobalSplits, "Number of split global live ranges");
51 STATISTIC(NumLocalSplits, "Number of split local live ranges");
56 cl::desc("Spill mode for splitting live ranges"),
88 // Live ranges pass through a number of stages as we try to allocate them.
89 // Some of the stages may also create new live ranges:
98 // that are unlikely to give any results. It also guarantees that the live
102 /// Newly created live range that has never been queued.
108 /// Attempt live range splitting if assignment is impossible.
111 /// Attempt more aggressive live range splitting that is guaranteed to make
116 /// Live range will be spilled. No more splitting will be attempted.
119 /// There is nothing more we can do to this live range. Abort compilation
126 // RegInfo - Keep additional information about each live range.
194 /// Global live range splitting candidate info.
205 // Bundles where this candidate should be live.
217 // Set B[i] = C for every live bundle where B[i] was NoCand.
405 // Prioritize live ranges by size, assigning larger ranges first.
494 /// shouldEvict - determine if A should evict the assigned live range B. The
502 /// @param A The live range to be assigned.
505 /// @param B The live range to be evicted.
522 /// @param VirtReg Live range that is about to be assigned.
548 // Check if any interfering live range is heavier than MaxWeight.
556 // Once a live range becomes small enough, it is urgent that we find a
558 // urgent live ranges get to evict almost anything.
560 // Only evict older cascades or live ranges without a cascade.
592 // number to every evicted register. These live ranges than then only be
704 // Interference for the live-in value.
714 // Interference for the live-out value.
738 /// live-through blocks in Blocks.
763 // Interference for the live-in value.
769 // Interference for the live-out value.
837 /// calcCompactRegion - Compute the set of edge bundles that should be live
838 /// when splitting the current live range into compact regions. Compact
840 /// regions formed by removing all the live-through blocks from the live range.
842 /// Returns false if the current live range is already compact, or if the
845 // Without any through blocks, the live range is already compact.
854 // Use the spill placer to determine the live bundles. GrowRegion pretends
882 /// calcSpillCost - Compute how expensive it would be to split the live range in
936 // live-in / stack-out or stack-in live-out.
942 /// splitAroundRegion - Split the current live range around the regions
948 /// objects must be initialized for the current live range, and intervals
1010 // Handle live-through blocks. The relevant live-through blocks are stored in
1074 // Global intervals. Allow repeated splitting as long as the number of live
1091 MF->verify(this, "After splitting live range around region");
1101 // Check if we can split this live range around a compact region.
1160 // No live bundles, defer to splitSingleBlocks().
1226 /// tryBlockSplit - Split a global live range around every block with uses. This
1227 /// creates a lot of local live ranges, that will be split by tryLocalSplit if
1231 assert(&SA->getParent() == &VirtReg && "Live range wasn't analyzed");
1264 MF->verify(this, "After splitting live range around basic blocks");
1336 // Note that it is possible to have an interval that is live-in or live-out
1355 // If VirtReg is live across any register mask operands, compute a list of
1362 // Constrain to VirtReg's live range.
1372 // overlap the live range.
1386 // creating infinite loops. It is tempting to require that the new live
1388 // convergence, but it is too strict. A live range with 3 instructions can be
1435 // Live before/after split?
1548 // Live Range Splitting
1571 // FIXME: SplitAnalysis may repair broken live ranges coming from the
1602 // Check if VirtReg is live across any calls.
1605 DEBUG(dbgs() << "Live across regmasks.\n");
1616 // Try to evict a less worthy live range, but only for ranges from the primary
1625 // The first time we see a live range, don't try to split or spill.
1654 // The live virtual register requesting allocation was spilled, so tell