Struct rupta::pts_set::pt_data::DiffPTData
source · pub struct DiffPTData<K, D, DS> { /* private fields */ }Expand description
Diff points-to data.
This is an optimisation on top of the base points-to data structure. The points-to information is propagated incrementally only for the different parts.
Implementations§
source§impl<K, D, DS> DiffPTData<K, D, DS>where
K: Hash + Eq + Copy,
D: Idx,
DS: PointsToSet<D> + Clone + Debug,
for<'a> &'a DS: IntoIterator<Item = D>,
impl<K, D, DS> DiffPTData<K, D, DS>where
K: Hash + Eq + Copy,
D: Idx,
DS: PointsToSet<D> + Clone + Debug,
for<'a> &'a DS: IntoIterator<Item = D>,
pub fn new() -> DiffPTData<K, D, DS>
pub fn clear(&mut self)
sourcepub fn add_pts(&mut self, var: K, elem: D) -> bool
pub fn add_pts(&mut self, var: K, elem: D) -> bool
Adds element to the points-to set associated with var. Returns false if elem is already in this set
sourcepub fn union_diff_pts(&mut self, dst_var: K, src_var: K) -> bool
pub fn union_diff_pts(&mut self, dst_var: K, src_var: K) -> bool
diff_pts(dst_var) = diff_pts(dst_var) U (diff_pts(src_var) - propa_pts(dst_var)).
sourcepub fn union_pts(&mut self, dst_var: K, src_var: K) -> bool
pub fn union_pts(&mut self, dst_var: K, src_var: K) -> bool
diff_pts(dst_var) = diff_pts(dst_var) U (pts(src_var) - propa_pts(dst_var)).
sourcepub fn union_pts_to(&mut self, dst_var: K, src_ds: &DS) -> bool
pub fn union_pts_to(&mut self, dst_var: K, src_ds: &DS) -> bool
Performs diff_pts(dst_var) = diff_pts(dst_var) U (src_ds - propa_pts(dst_var)).
sourcepub fn remove_pts_elem(&mut self, var: K, elem: D) -> bool
pub fn remove_pts_elem(&mut self, var: K, elem: D) -> bool
Removes element from the points-to set of var.
sourcepub fn get_diff_pts(&self, var: K) -> Option<&DS>
pub fn get_diff_pts(&self, var: K) -> Option<&DS>
Get diff points to.
sourcepub fn get_mut_diff_pts(&mut self, var: K) -> Option<&mut DS>
pub fn get_mut_diff_pts(&mut self, var: K) -> Option<&mut DS>
Returns a mutable reference to the diff points to set.
sourcepub fn get_propa_pts(&self, var: K) -> Option<&DS>
pub fn get_propa_pts(&self, var: K) -> Option<&DS>
Get propagated points to.
sourcepub fn get_mut_propa_pts(&mut self, var: K) -> Option<&mut DS>
pub fn get_mut_propa_pts(&mut self, var: K) -> Option<&mut DS>
Returns a mutable reference to the propa points to set.
sourcepub fn clear_diff_pts(&mut self, var: K)
pub fn clear_diff_pts(&mut self, var: K)
Clear propagated points-to set of var.
sourcepub fn clear_propa_pts(&mut self, var: K)
pub fn clear_propa_pts(&mut self, var: K)
Clear propagated points-to set of var.
sourcepub fn dump_pt_data(&self)
pub fn dump_pt_data(&self)
Dump stored keys and points-to sets.