use vyre_primitives::graph::dominator_frontier::try_cpu_ref as try_reference_dominator_frontier;
#[must_use]
pub fn compute_dominance_frontier(
node_count: u32,
dom_offsets: &[u32],
dom_targets: &[u32],
pred_offsets: &[u32],
pred_targets: &[u32],
seed: &[u32],
) -> Vec<u32> {
try_compute_dominance_frontier(
node_count,
dom_offsets,
dom_targets,
pred_offsets,
pred_targets,
seed,
)
.unwrap_or_else(|err| {
panic!("dominance-frontier self-substrate reference rejected input. {err}")
})
}
#[cfg(any(test, feature = "cpu-parity"))]
pub fn try_compute_dominance_frontier(
node_count: u32,
dom_offsets: &[u32],
dom_targets: &[u32],
pred_offsets: &[u32],
pred_targets: &[u32],
seed: &[u32],
) -> Result<Vec<u32>, String> {
use crate::observability::{bump, graph_dispatch_calls};
bump(&graph_dispatch_calls);
try_reference_dominator_frontier(
node_count,
dom_offsets,
dom_targets,
pred_offsets,
pred_targets,
seed,
)
}