rustc_data_structures::graph::dominators

Function eval

Source
fn eval(
    ancestor: &mut IndexSlice<PreorderIndex, PreorderIndex>,
    lastlinked: Option<PreorderIndex>,
    semi: &IndexSlice<PreorderIndex, PreorderIndex>,
    label: &mut IndexSlice<PreorderIndex, PreorderIndex>,
    node: PreorderIndex,
) -> PreorderIndex
Expand description

Evaluate the link-eval virtual forest, providing the currently minimum semi value for the passed node (which may be itself).

This maintains that for every vertex v, label[v] is such that:

semi[eval(v)] = min { semi[label[u]] | root_in_forest(v) +> u *> v }

where +> is a proper ancestor and *> is just an ancestor.