[−][src]Struct llhd::analysis::TemporalRegionData
Data associated with a temporal region.
Fields
id: TemporalRegion
The unique identifier for this region.
blocks: HashSet<Block>
The blocks in this region.
entry: bool
Whether this is the initial temporal region upon entering the process.
head_insts: HashSet<Inst>
The temporal instructions that introduce this region.
Note that these reside in blocks outside this region, namely in the
predecessors of the head_blocks
.
head_blocks: HashSet<Block>
The entry blocks into this region.
These are the first blocks that are jumped into upon entering this region.
head_tight: bool
The head blocks are only reachable via branches from other regions.
tail_insts: HashSet<Inst>
The temporal instructions that terminate this region.
Note that these reside in blocks inside this region, namely in the
tail_blocks
.
tail_blocks: HashSet<Block>
The exit blocks out of this region.
These are the last blocks in this region, where execution either ends
in a wait
or halt
instruction.
tail_tight: bool
The tail blocks only branch to other regions.
Methods
impl TemporalRegionData
[src]
pub fn blocks(&self) -> impl Iterator<Item = Block> + Clone + '_
[src]
An iterator over the blocks in this region.
pub fn head_insts(&self) -> impl Iterator<Item = Inst> + Clone + '_
[src]
An iterator over the head instructions in this region.
pub fn head_blocks(&self) -> impl Iterator<Item = Block> + Clone + '_
[src]
An iterator over the head blocks in this region.
pub fn tail_insts(&self) -> impl Iterator<Item = Inst> + Clone + '_
[src]
An iterator over the tail instructions in this region.
pub fn tail_blocks(&self) -> impl Iterator<Item = Block> + Clone + '_
[src]
An iterator over the tail blocks in this region.
pub fn is_head(&self, bb: Block) -> bool
[src]
Check if a block is a temporal head block.
pub fn is_tail(&self, bb: Block) -> bool
[src]
Check if a block is a temporal tail block.
Trait Implementations
impl Clone for TemporalRegionData
[src]
fn clone(&self) -> TemporalRegionData
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for TemporalRegionData
[src]
Auto Trait Implementations
impl RefUnwindSafe for TemporalRegionData
impl Send for TemporalRegionData
impl Sync for TemporalRegionData
impl Unpin for TemporalRegionData
impl UnwindSafe for TemporalRegionData
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>,