Skip to main content

split_range_by_block

Function split_range_by_block 

Source
fn split_range_by_block(
    points: &DenseLocationMap,
    range: RangeInclusive<SplitPointIndex>,
) -> impl Iterator<Item = (RangeBoundary, RangeBoundary)>
Expand description

Splits a live interval at block boundaries, returning the location at which storage statements need to be inserted at the start and end of the range.

This is needed because SparseIntervalMatrix coalesces numerically adjacent ranges, which can span multiple basic blocks.