pub struct PDGraph {
pub num_stmts: usize,
pub data_edges: Vec<BTreeSet<usize>>,
pub ctrl_edges: Vec<BTreeSet<usize>>,
}Expand description
A simplified program dependence graph over statement indices.
Fields§
§num_stmts: usizeNumber of statements.
data_edges: Vec<BTreeSet<usize>>Data dependence edges: data_edges[s] = set of statements s flows data to.
ctrl_edges: Vec<BTreeSet<usize>>Control dependence edges: ctrl_edges[s] = statements s controls.
Implementations§
Source§impl PDGraph
impl PDGraph
Sourcepub fn add_data_edge(&mut self, src: usize, dst: usize)
pub fn add_data_edge(&mut self, src: usize, dst: usize)
Add a data dependence edge from src to dst.
Sourcepub fn add_ctrl_edge(&mut self, src: usize, dst: usize)
pub fn add_ctrl_edge(&mut self, src: usize, dst: usize)
Add a control dependence edge from src to dst.
Sourcepub fn backward_slice(&self, criterion: usize) -> BTreeSet<usize>
pub fn backward_slice(&self, criterion: usize) -> BTreeSet<usize>
Compute backward slice from a criterion statement.
Returns the set of statement indices that can affect criterion.
Sourcepub fn forward_slice(&self, criterion: usize) -> BTreeSet<usize>
pub fn forward_slice(&self, criterion: usize) -> BTreeSet<usize>
Compute forward slice from a criterion statement.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PDGraph
impl RefUnwindSafe for PDGraph
impl Send for PDGraph
impl Sync for PDGraph
impl Unpin for PDGraph
impl UnsafeUnpin for PDGraph
impl UnwindSafe for PDGraph
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