weirflow 0.1.0

GPU-first dataflow analysis primitives for Vyre and Santh compiler pipelines.
Documentation
mod graph;
#[cfg(any(test, feature = "cpu-parity"))]
mod oracle;
mod plan;
mod program;
#[cfg(test)]
#[allow(deprecated)]
mod tests;

pub(crate) const OP_ID: &str = "weir::live";

crate::define_analysis_family! {
    family: LiveFamily,
    kind: crate::fixed_point_graph::FixedPointAnalysisKind::Live,
    name: "live_closure",
    program_builder: live_step,
    graph_prep: plan::prepare_live_graph,
    graph_prep_scratch: plan::prepare_live_graph_with_scratch,
    input_buffer: "fin",
    output_buffer: "fout",
    closure_prefix: live_closure,
    resident_prefix: live_closure_resident,
    word_capacity: "live_closure",
    frontier_output: "frontier",
    resident_capacity: "live_closure resident",
    resident_output: "frontier",
    visibility: pub,
}

#[cfg(any(test, feature = "cpu-parity"))]
#[allow(deprecated)]
pub(crate) use oracle::live_closure_cpu;
pub use plan::{
    prepare_live_graph, prepare_live_graph_into, prepare_live_graph_into_with_scratch,
    prepare_live_graph_with_scratch, prepare_live_plan, prepare_live_plan_into,
    prepare_live_plan_into_with_scratch, prepare_live_plan_with_scratch,
};
pub use program::{live_step, Liveness};

#[cfg(test)]
use graph::live_reverse_control_csr;
#[cfg(test)]
use vyre::ir::Program;
#[cfg(test)]
use vyre_primitives::graph::program_graph::ProgramGraphShape;