pub struct DataFlowAnalyzer { /* private fields */ }Expand description
Data Flow Analyzer
Implementations§
Source§impl DataFlowAnalyzer
impl DataFlowAnalyzer
Sourcepub fn from_module(module: &PtxModule) -> Self
pub fn from_module(module: &PtxModule) -> Self
Create from a PTX module (analyzes first kernel)
Sourcepub fn analyze_kernel(&mut self, kernel: &KernelDef)
pub fn analyze_kernel(&mut self, kernel: &KernelDef)
Analyze a kernel for data flow
Sourcepub fn detect_loaded_value_bug(&self) -> Vec<LoadedValueBug>
pub fn detect_loaded_value_bug(&self) -> Vec<LoadedValueBug>
Detect the “loaded value” bug pattern (F081)
Pattern: ld.shared -> computation -> st.XXX crashes
Sourcepub fn detect_computed_addr_from_loaded(&self) -> Vec<ComputedAddrFromLoadedBug>
pub fn detect_computed_addr_from_loaded(&self) -> Vec<ComputedAddrFromLoadedBug>
Detect “computed address from loaded value” bug pattern (F082)
Pattern: ld.shared %r_val -> add %r_addr, base, %r_val -> st.XXX [%r_addr] Even storing a CONSTANT to an address computed from a loaded value crashes.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DataFlowAnalyzer
impl RefUnwindSafe for DataFlowAnalyzer
impl Send for DataFlowAnalyzer
impl Sync for DataFlowAnalyzer
impl Unpin for DataFlowAnalyzer
impl UnsafeUnpin for DataFlowAnalyzer
impl UnwindSafe for DataFlowAnalyzer
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