Home | History | Annotate | Download | only in CodeGen

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.
181 /// Global live range splitting candidate info.
192 // Bundles where this candidate should be live.
204 // Set B[i] = C for every live bundle where B[i] was NoCand.
401 // Prioritize live ranges by size, assigning larger ranges first.
487 live range B. The
495 /// @param A The live range to be assigned.
498 /// @param B The live range to be evicted.
515 /// @param VirtReg Live range that is about to be assigned.
541 // Check if any interfering live range is heavier than MaxWeight.
549 // Once a live range becomes small enough, it is urgent that we find a
551 // urgent live ranges get to evict almost anything.
553 // Only evict older cascades or live ranges without a cascade.
585 // number to every evicted register. These live ranges than then only be
695 // Interference for the live-in value.
705 // Interference for the live-out value.
729 /// live-through blocks in Blocks.
754 // Interference for the live-in value.
760 // Interference for the live-out value.
828 /// calcCompactRegion - Compute the set of edge bundles that should be live
829 /// when splitting the current live range into compact regions. Compact
831 /// regions formed by removing all the live-through blocks from the live range.
833 /// Returns false if the current live range is already compact, or if the
836 // Without any through blocks, the live range is already compact.
845 // Use the spill placer to determine the live bundles. GrowRegion pretends
873 /// calcSpillCost - Compute how expensive it would be to split the live range in
927 // live-in / stack-out or stack-in live-out.
933 /// splitAroundRegion - Split the current live range around the regions
939 /// objects must be initialized for the current live range, and intervals
1001 // Handle live-through blocks. The relevant live-through blocks are stored in
1065 // Global intervals. Allow repeated splitting as long as the number of live
1082 MF->verify(this, "After splitting live range around region");
1092 // Check if we can split this live range around a compact region.
1149 // No live bundles, defer to splitSingleBlocks().
1215 /// tryBlockSplit - Split a global live range around every block with uses. This
1216 /// creates a lot of local live ranges, that will be split by tryLocalSplit if
1220 assert(&SA->getParent() == &VirtReg && "Live range wasn't analyzed");
1253 MF->verify(this, "After splitting live range around basic blocks");
1325 // Note that it is possible to have an interval that is live-in or live-out
1345 // creating infinite loops. It is tempting to require that the new live
1347 // convergence, but it is too strict. A live range with 3 instructions can be
1389 // Live before/after split?
1502 // Live Range Splitting
1525 // FIXME: SplitAnalysis may repair broken live ranges coming from the
1565 // Try to evict a less worthy live range, but only for ranges from the primary
1574 // The first time we see a live range, don't try to split or spill.
1603 // The live virtual register requesting allocation was spilled, so tell