weirflow 0.1.0

GPU-first dataflow analysis primitives for Vyre and Santh compiler pipelines.
Documentation
use super::*;

// 3. Overflow and boundary tests
// ==================================================================

bfs_test!(
    max_valid_procs_min_others,
    4096,
    1,
    1,
    &[],
    &[],
    &[],
    &[],
    &[(0, 0, 0)],
    vec![(0, 0, 0)]
);

bfs_test!(
    max_valid_blocks_min_others,
    1,
    1024,
    1,
    &chain_edges(1024),
    &[],
    &[],
    &[],
    &[(0, 0, 0)],
    (0..1024).map(|b| (0, b, 0)).collect()
);

bfs_test!(
    max_valid_facts_min_others,
    1,
    1,
    1024,
    &[],
    &[],
    &[],
    &[],
    &[(0, 0, 0), (0, 0, 1023)],
    vec![(0, 0, 0), (0, 0, 1023)]
);

bfs_test!(
    max_valid_procs_blocks_small_facts,
    4096,
    1024,
    1,
    &[],
    &[],
    &[],
    &[],
    &[(0, 0, 0), (4095, 0, 0)],
    vec![(0, 0, 0), (4095, 0, 0)]
);

bfs_test!(
    large_valid_product,
    2048,
    1024,
    2,
    &[],
    &[],
    &[],
    &[],
    &[(0, 0, 0)],
    vec![(0, 0, 0)]
);

panic_test!(
    just_over_max_procs_rejected,
    "dimensions exceed 32-bit exploded-node encoding",
    solve_cpu(4097, 1, 1, &[], &[], &[], &[], &[])
);

panic_test!(
    just_over_max_blocks_rejected,
    "dimensions exceed 32-bit exploded-node encoding",
    solve_cpu(1, 1025, 1, &[], &[], &[], &[], &[])
);

panic_test!(
    just_over_max_facts_rejected,
    "dimensions exceed 32-bit exploded-node encoding",
    solve_cpu(1, 1, 1025, &[], &[], &[], &[], &[])
);

panic_test!(
    procs_4096_blocks_1024_facts_1024_rejected,
    "dimensions exceed 32-bit exploded-node encoding",
    solve_cpu(4096, 1024, 1024, &[], &[], &[], &[], &[])
);