weirflow 0.1.0

GPU-first dataflow analysis primitives for Vyre and Santh compiler pipelines.
Documentation
//! Parameterized analysis matrix: 5,000+ distinct parameter combinations.

#![allow(clippy::print_stderr)]

use rand::{Rng, SeedableRng};
use vyre::VyreBackend;
use vyre_primitives::graph::program_graph::ProgramGraphShape;
use weir::test_harness::{
    csr_factory::CsrFactory, dominator_fixture::DominatorFixture, fake_backend::FakeResidentBackend,
};

fn record_case() {}

fn fake_dispatch_borrowed(
    backend: &FakeResidentBackend,
) -> impl Fn(&vyre::ir::Program, &[&[u8]], Option<[u32; 3]>) -> Result<Vec<Vec<u8>>, String> + '_ {
    move |program, inputs, grid| {
        let owned: Vec<Vec<u8>> = inputs.iter().map(|s| s.to_vec()).collect();
        let mut config = vyre::backend::DispatchConfig::default();
        config.grid_override = grid;
        backend
            .dispatch(program, &owned, &config)
            .map_err(|e| e.to_string())
    }
}

#[path = "parameterized_analysis_matrix/reaching_contracts.rs"]
mod reaching_contracts;
#[path = "parameterized_analysis_matrix/live_contracts.rs"]
mod live_contracts;
#[path = "parameterized_analysis_matrix/points_to_contracts.rs"]
mod points_to_contracts;
#[path = "parameterized_analysis_matrix/slice_contracts.rs"]
mod slice_contracts;
#[path = "parameterized_analysis_matrix/dominator_contracts.rs"]
mod dominator_contracts;
#[path = "parameterized_analysis_matrix/range_callgraph_contracts.rs"]
mod range_callgraph_contracts;
#[path = "parameterized_analysis_matrix/query_contracts.rs"]
mod query_contracts;