pub struct IfdsCsrRuleColumns {Show 13 fields
pub intra_proc: Vec<u32>,
pub intra_src_block: Vec<u32>,
pub intra_dst_block: Vec<u32>,
pub inter_src_proc: Vec<u32>,
pub inter_src_block: Vec<u32>,
pub inter_dst_proc: Vec<u32>,
pub inter_dst_block: Vec<u32>,
pub gen_proc: Vec<u32>,
pub gen_block: Vec<u32>,
pub gen_fact: Vec<u32>,
pub kill_proc: Vec<u32>,
pub kill_block: Vec<u32>,
pub kill_fact: Vec<u32>,
}Expand description
Caller-owned structure-of-arrays rule columns for IFDS CSR dispatch.
This lives with the primitive dispatch plan because field order, padding, and rule-domain grouping are part of the primitive ABI. Dispatch consumers reuse one value across calls and upload these columns without re-forking IFDS tuple marshalling.
Fields§
§intra_proc: Vec<u32>Intra-procedural procedure ids.
intra_src_block: Vec<u32>Intra-procedural source blocks.
intra_dst_block: Vec<u32>Intra-procedural destination blocks.
inter_src_proc: Vec<u32>Inter-procedural source procedures.
inter_src_block: Vec<u32>Inter-procedural source blocks.
inter_dst_proc: Vec<u32>Inter-procedural destination procedures.
inter_dst_block: Vec<u32>Inter-procedural destination blocks.
gen_proc: Vec<u32>GEN rule procedures.
gen_block: Vec<u32>GEN rule blocks.
gen_fact: Vec<u32>GEN rule facts.
kill_proc: Vec<u32>KILL rule procedures.
kill_block: Vec<u32>KILL rule blocks.
kill_fact: Vec<u32>KILL rule facts.
Implementations§
Source§impl IfdsCsrRuleColumns
impl IfdsCsrRuleColumns
Sourcepub fn prepare(
&mut self,
intra_edges: &[(u32, u32, u32)],
inter_edges: &[(u32, u32, u32, u32)],
flow_gen: &[(u32, u32, u32)],
flow_kill: &[(u32, u32, u32)],
) -> Result<(), String>
pub fn prepare( &mut self, intra_edges: &[(u32, u32, u32)], inter_edges: &[(u32, u32, u32, u32)], flow_gen: &[(u32, u32, u32)], flow_kill: &[(u32, u32, u32)], ) -> Result<(), String>
Split all IFDS tuple rules into primitive-owned structure-of-arrays columns, reusing existing allocations.
§Errors
Returns an allocation diagnostic if any output column cannot reserve enough space for its incoming rule slice.
Trait Implementations§
Source§impl Clone for IfdsCsrRuleColumns
impl Clone for IfdsCsrRuleColumns
Source§fn clone(&self) -> IfdsCsrRuleColumns
fn clone(&self) -> IfdsCsrRuleColumns
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IfdsCsrRuleColumns
impl Debug for IfdsCsrRuleColumns
Source§impl Default for IfdsCsrRuleColumns
impl Default for IfdsCsrRuleColumns
Source§fn default() -> IfdsCsrRuleColumns
fn default() -> IfdsCsrRuleColumns
impl Eq for IfdsCsrRuleColumns
Source§impl PartialEq for IfdsCsrRuleColumns
impl PartialEq for IfdsCsrRuleColumns
impl StructuralPartialEq for IfdsCsrRuleColumns
Auto Trait Implementations§
impl Freeze for IfdsCsrRuleColumns
impl RefUnwindSafe for IfdsCsrRuleColumns
impl Send for IfdsCsrRuleColumns
impl Sync for IfdsCsrRuleColumns
impl Unpin for IfdsCsrRuleColumns
impl UnsafeUnpin for IfdsCsrRuleColumns
impl UnwindSafe for IfdsCsrRuleColumns
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.