weirflow 0.1.0

GPU-first dataflow analysis primitives for Vyre and Santh compiler pipelines.
Documentation
use super::{callgraph_build_with_count, OP_ID};

/// Marker type for the callgraph dataflow primitive.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Callgraph;

impl crate::soundness::SoundnessTagged for Callgraph {
    fn soundness(&self) -> crate::soundness::Soundness {
        crate::soundness::Soundness::MayOver
    }
}

inventory::submit! {
    vyre_harness::OpEntry::new(
        OP_ID,
        || callgraph_build_with_count("direct", "indirect", "pts", "out", 4),
        Some(|| {
            let u32s = crate::dispatch_decode::pack_u32;
            vec![vec![u32s(&[0b1100]), u32s(&[0b1010]), u32s(&[0b0110]), u32s(&[0])]]
        }),
        Some(|| {
            let u32s = crate::dispatch_decode::pack_u32;
            vec![vec![u32s(&[0b1110])]]
        }),
    )
}