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)