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.