pub fn program_with_roots(defs: usize, roots: usize) -> StringExpand description
defs shared definitions reachable from each of roots roots.
§17.2 makes tier splitting reachability over the product of the
definition set and the root set. To measure the product rather than
either factor, the definitions must be shared: a chain of defs
functions, and roots server-placed signals each rooted at the head of
that chain. The source is O(defs + roots) lines and the reachable set is
defs × roots pairs, so any gap between the two is the pass’s own.
Server placement is what mints a root here. zdc build refuses to emit
a server function (§16.5, M6), which is why this measures split and
ifc directly rather than going through the whole pipeline — those two
passes run on the program regardless of whether anything is emitted.