Skip to main content

pack_phases

Function pack_phases 

Source
pub fn pack_phases(
    sections: Vec<SpatialProgram>,
    target: &SpatialTarget,
) -> Result<(Vec<SpatialProgram>, Vec<bool>), Vec<SpatialProgram>>
Expand description

The sections packed into phases: each moved onto the next free sites of the earliest phase after every section it depends on that still has room, returned in phase order with barrier_after[k] closing each phase’s last section — or the sections back, untouched, when they cannot be moved on target (see packable).

A section depends on an earlier one exactly when some name witnesses it: it reads what the earlier one writes, or writes what the earlier one reads or writes.