weirflow 0.1.0

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

/// Marker type for the persistent-summary dataflow primitive.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Summary;

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

inventory::submit! {
    vyre_harness::OpEntry::new(
        OP_ID,
        || summarize_function_with_count("ast", "cg", "cached", "out", 64),
        Some(|| {
            let u32s = crate::dispatch_decode::pack_u32;
            vec![vec![
                u32s(&[0b0001, 0]),
                u32s(&[0b0010, 0b0100]),
                u32s(&[0b1000, 0b1_0000]),
                u32s(&[0, 0]),
            ]]
        }),
        Some(|| {
            let u32s = crate::dispatch_decode::pack_u32;
            vec![vec![u32s(&[0b1011, 0b1_0100])]]
        }),
    )
}