Skip to main content

vyre_primitives/graph/exploded/
abi.rs

1/// Canonical op id for the IFDS CSR construction program.
2pub const OP_ID: &str = "vyre-primitives::graph::exploded_build_ifds_csr";
3
4/// Canonical dispatch input label for intra-procedural procedure ids.
5pub const IFDS_CSR_INTRA_PROC_BUFFER: &str = "exploded_ifds_csr intra_proc";
6/// Canonical dispatch input label for intra-procedural source blocks.
7pub const IFDS_CSR_INTRA_SRC_BLOCK_BUFFER: &str = "exploded_ifds_csr intra_src_block";
8/// Canonical dispatch input label for intra-procedural destination blocks.
9pub const IFDS_CSR_INTRA_DST_BLOCK_BUFFER: &str = "exploded_ifds_csr intra_dst_block";
10/// Canonical dispatch input label for inter-procedural source procedures.
11pub const IFDS_CSR_INTER_SRC_PROC_BUFFER: &str = "exploded_ifds_csr inter_src_proc";
12/// Canonical dispatch input label for inter-procedural source blocks.
13pub const IFDS_CSR_INTER_SRC_BLOCK_BUFFER: &str = "exploded_ifds_csr inter_src_block";
14/// Canonical dispatch input label for inter-procedural destination procedures.
15pub const IFDS_CSR_INTER_DST_PROC_BUFFER: &str = "exploded_ifds_csr inter_dst_proc";
16/// Canonical dispatch input label for inter-procedural destination blocks.
17pub const IFDS_CSR_INTER_DST_BLOCK_BUFFER: &str = "exploded_ifds_csr inter_dst_block";
18/// Canonical dispatch input label for GEN rule procedures.
19pub const IFDS_CSR_GEN_PROC_BUFFER: &str = "exploded_ifds_csr gen_proc";
20/// Canonical dispatch input label for GEN rule blocks.
21pub const IFDS_CSR_GEN_BLOCK_BUFFER: &str = "exploded_ifds_csr gen_block";
22/// Canonical dispatch input label for GEN rule facts.
23pub const IFDS_CSR_GEN_FACT_BUFFER: &str = "exploded_ifds_csr gen_fact";
24/// Canonical dispatch input label for KILL rule procedures.
25pub const IFDS_CSR_KILL_PROC_BUFFER: &str = "exploded_ifds_csr kill_proc";
26/// Canonical dispatch input label for KILL rule blocks.
27pub const IFDS_CSR_KILL_BLOCK_BUFFER: &str = "exploded_ifds_csr kill_block";
28/// Canonical dispatch input label for KILL rule facts.
29pub const IFDS_CSR_KILL_FACT_BUFFER: &str = "exploded_ifds_csr kill_fact";
30/// Canonical dispatch output label for CSR row pointers.
31pub const IFDS_CSR_ROW_PTR_BUFFER: &str = "exploded_ifds_csr row_ptr";
32/// Canonical dispatch scratch label for row cursors.
33pub const IFDS_CSR_ROW_CURSOR_BUFFER: &str = "exploded_ifds_csr row_cursor";
34/// Canonical dispatch output label for CSR column indices.
35pub const IFDS_CSR_COL_IDX_BUFFER: &str = "exploded_ifds_csr col_idx";
36/// Canonical dispatch output label for emitted column length.
37pub const IFDS_CSR_COL_LEN_BUFFER: &str = "exploded_ifds_csr col_len";
38/// Canonical dispatch scratch label for the dense kill bitmap.
39pub const IFDS_CSR_KILLED_BUFFER: &str = "exploded_ifds_csr killed";
40/// Serial workgroup for exploded IFDS CSR construction.
41pub const IFDS_CSR_WORKGROUP_SIZE: [u32; 3] = [1, 1, 1];
42
43/// Dispatch grid for exploded IFDS CSR construction.
44///
45/// The generated Program executes the full CSR build inside global lane `0`, so
46/// the launch contract is a single block. Scaling this grid only launches idle
47/// blocks and burns dispatch overhead without changing observable work.
48#[must_use]
49pub const fn ifds_csr_dispatch_grid(_intra_count: u32, _total_nodes: u32) -> [u32; 3] {
50    [1, 1, 1]
51}
52
53/// Minimum grid for empty no-rule IFDS dispatch plans.
54pub const IFDS_CSR_EMPTY_DISPATCH_GRID: [u32; 3] = [1, 1, 1];