[−][src]Struct llhd::analysis::PredecessorTable
A table of basic block predecessors.
Implementations
impl PredecessorTable
[src]
pub fn new(unit: &Unit<'_>) -> Self
[src]
use unit.predtbl() instead
Compute the predecessor table for a function or process.
pub fn new_temporal(unit: &Unit<'_>) -> Self
[src]
use unit.temporal_predtbl() instead
Compute the temporal predecessor table for a process.
This is a special form of predecessor table which ignores edges in the CFG that cross a temporal instruction. As such all connected blocks in the table are guaranteed to execute within the same instant of time.
pub fn all_pred_sets(&self) -> &HashMap<Block, HashSet<Block>>
[src]
Get a map of blocks to predecessor sets in this table.
pub fn all_succs_sets(&self) -> &HashMap<Block, HashSet<Block>>
[src]
Get a map of blocks to successor sets in this table.
pub fn pred_set(&self, bb: Block) -> &HashSet<Block>
[src]
Get the predecessors of a block.
pub fn succ_set(&self, bb: Block) -> &HashSet<Block>
[src]
Get the successors of a block.
pub fn pred(&self, bb: Block) -> impl Iterator<Item = Block> + Clone + '_
[src]
Get the predecessors of a block.
pub fn succ(&self, bb: Block) -> impl Iterator<Item = Block> + Clone + '_
[src]
Get the successors of a block.
pub fn is_sole_pred(&self, bb: Block, pred_of: Block) -> bool
[src]
Check if a block is the sole predecessor of another block.
pub fn is_sole_succ(&self, bb: Block, succ_of: Block) -> bool
[src]
Check if a block is the sole successor of another block.
Trait Implementations
impl Clone for PredecessorTable
[src]
fn clone(&self) -> PredecessorTable
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for PredecessorTable
[src]
Auto Trait Implementations
impl RefUnwindSafe for PredecessorTable
impl Send for PredecessorTable
impl Sync for PredecessorTable
impl Unpin for PredecessorTable
impl UnwindSafe for PredecessorTable
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,