weirflow 0.1.0

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

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

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

inventory::submit! {
    vyre_harness::OpEntry::new(
        OP_ID,
        || range_propagate("defs", "edges", "out"),
        Some(|| {
            let u32s = crate::dispatch_decode::pack_u32;
            vec![vec![
                u32s(&[10, 20, 5, 7, 100, 100, 0, 1]),
                u32s(&[1, 2, 3, 4, 0, 50, 7, 8]),
                u32s(&[0; 8]),
            ]]
        }),
        Some(|| {
            let u32s = crate::dispatch_decode::pack_u32;
            vec![vec![u32s(&[11, 22, 8, 11, 100, 150, 7, 9])]]
        }),
    )
}