Skip to main content

rangeify_with_map

Function rangeify_with_map 

Source
pub fn rangeify_with_map(
    sink: Arc<UOp>,
    pcontig_config: Option<&PcontigConfig>,
) -> Result<RangeifyResult>
Expand description

Main rangeify transformation entry point with becomes_map tracking.

Like rangeify, but also returns a becomes_map that tracks which original nodes were transformed. This is essential for global graph coordination when multiple tensors share subgraphs.

§Pipeline (Tinygrad-aligned)

The pipeline follows Tinygrad’s structure from codegen/init.py:

Stage 0: Range assignment (run_rangeify) Stage 1: pm_mops + pm_syntactic_sugar (BOTTOM_UP) - Early movement ops Stage 2: pm_load_collapse - Collapse load tensor indexing Stage 3: pm_split_ranges + pm_flatten_range - Range splitting Stage 4: sym + pm_flatten_range - Initial symbolic (TOP_DOWN) Stage 5: pm_simplify_ranges - Simplify/merge ranges Stage 6: apply_opts - Post-range optimization (happens in optimizer)