pub struct IfdsShape {
pub num_procs: u32,
pub blocks_per_proc: u32,
pub facts_per_proc: u32,
pub edge_count: u32,
}Expand description
Dispatch geometry for one IFDS BFS step on the GPU.
Fields§
§num_procs: u32Number of procedures in the exploded supergraph.
blocks_per_proc: u32Number of basic blocks encoded per procedure.
facts_per_proc: u32Number of dataflow facts encoded per procedure.
edge_count: u32Number of graph edges in the CSR representation.
Implementations§
Source§impl IfdsShape
impl IfdsShape
Sourcepub const fn new(
num_procs: u32,
blocks_per_proc: u32,
facts_per_proc: u32,
edge_count: u32,
) -> Self
pub const fn new( num_procs: u32, blocks_per_proc: u32, facts_per_proc: u32, edge_count: u32, ) -> Self
Construct an IfdsShape from individual dimensions.
Sourcepub fn node_count(&self) -> Result<u32, String>
pub fn node_count(&self) -> Result<u32, String>
Number of exploded-supergraph nodes = procs * blocks * facts.
Sourcepub fn checked_node_count(&self) -> Result<u32, String>
pub fn checked_node_count(&self) -> Result<u32, String>
Checked node count for callers that can return structured errors.
Sourcepub fn node_domain(&self) -> Result<LinearDomain, String>
pub fn node_domain(&self) -> Result<LinearDomain, String>
Shared linear layout domain for the exploded IFDS supergraph.
Sourcepub fn certificate(&self) -> IfdsShapeCertificate
pub fn certificate(&self) -> IfdsShapeCertificate
Build an auditable shape certificate without duplicating validation
logic. Invalid shapes return fits=false plus the same cap reason used
by checked dispatch paths.
Trait Implementations§
impl Copy for IfdsShape
Source§impl SoundnessTagged for IfdsShape
impl SoundnessTagged for IfdsShape
impl StructuralPartialEq for IfdsShape
Auto Trait Implementations§
impl Freeze for IfdsShape
impl RefUnwindSafe for IfdsShape
impl Send for IfdsShape
impl Sync for IfdsShape
impl Unpin for IfdsShape
impl UnsafeUnpin for IfdsShape
impl UnwindSafe for IfdsShape
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more