[−][src]Struct gf::ai::executor::FixpointExecutorState
🟢 State of a FixpointExecutor
.
This structure maintains head and tail state for basic blocks. For forward interpretation, head means start of a basic block, and tail its end. For backward interpretation, the meanings are reversed.
Implementations
impl<'a, D, I> FixpointExecutorState<'a, D, I> where
D: Direction,
I: Interp<'a, D>,
I::State: Meet,
[src]
D: Direction,
I: Interp<'a, D>,
I::State: Meet,
pub fn new(fragment_cfg: FragmentCfg<'a, D>) -> Self
[src]
Create a fixpoint executor state for a fragment where all head and tail states are initially set to ⊤.
pub fn with_head_state(
fragment_cfg: FragmentCfg<'a, D>,
head_state: I::State
) -> Self
[src]
fragment_cfg: FragmentCfg<'a, D>,
head_state: I::State
) -> Self
Create a fixpoint executor state for a fragment with given head state, while initializing all other basic block states to ⊤.
pub fn fragment(&self) -> Fragment<'a>
[src]
Return the fragment.
pub fn fragment_cfg(&self) -> FragmentCfg<'a, D>
[src]
Return the fragment CFG.
pub fn head_interp_state(&self, basic_block: BasicBlock<'a>) -> &I::State
[src]
Return head interpretation state of basic_block
.
pub fn set_head_interp_state_meet(
&mut self,
basic_block: BasicBlock<'a>,
state: &I::State
) -> bool
[src]
&mut self,
basic_block: BasicBlock<'a>,
state: &I::State
) -> bool
Set head interpretation state of basic_block
by applying the meet
operation.
Returns true
iff the state has changed.
pub fn tail_interp_state(&self, basic_block: BasicBlock<'a>) -> &I::State
[src]
Return tail interpretation state of basic_block
.
pub fn set_tail_interp_state_meet(
&mut self,
basic_block: BasicBlock<'a>,
state: &I::State
) -> bool
[src]
&mut self,
basic_block: BasicBlock<'a>,
state: &I::State
) -> bool
Set tail interpretation state of basic_block
by applying the meet
operation.
Returns true
iff the state has changed.
pub fn fragment_head_interp_state(&self) -> &I::State
[src]
Return head interpretation state of the entire fragment.
pub fn fragment_tail_interp_state(&self) -> &I::State
[src]
Return tail interpretation state of the entire fragment.
pub fn initial_queue(&self) -> VecDeque<PathExecutorState<'a, D, I>>
[src]
Return the initial worklist queue, which is the reverse postorder of head states for all basic blocks of the fragment.
Trait Implementations
impl<'a, D: Clone, I: Clone> Clone for FixpointExecutorState<'a, D, I> where
D: Direction,
I: Interp<'a, D>,
I::State: Meet,
I::State: Clone,
I::State: Clone,
[src]
D: Direction,
I: Interp<'a, D>,
I::State: Meet,
I::State: Clone,
I::State: Clone,
fn clone(&self) -> FixpointExecutorState<'a, D, I>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Auto Trait Implementations
impl<'a, D, I> RefUnwindSafe for FixpointExecutorState<'a, D, I> where
D: RefUnwindSafe,
<I as Interp<'a, D>>::State: RefUnwindSafe,
D: RefUnwindSafe,
<I as Interp<'a, D>>::State: RefUnwindSafe,
impl<'a, D, I> Send for FixpointExecutorState<'a, D, I> where
D: Sync,
<I as Interp<'a, D>>::State: Send,
D: Sync,
<I as Interp<'a, D>>::State: Send,
impl<'a, D, I> Sync for FixpointExecutorState<'a, D, I> where
D: Sync,
<I as Interp<'a, D>>::State: Sync,
D: Sync,
<I as Interp<'a, D>>::State: Sync,
impl<'a, D, I> Unpin for FixpointExecutorState<'a, D, I> where
<I as Interp<'a, D>>::State: Unpin,
<I as Interp<'a, D>>::State: Unpin,
impl<'a, D, I> UnwindSafe for FixpointExecutorState<'a, D, I> where
D: RefUnwindSafe,
<I as Interp<'a, D>>::State: UnwindSafe,
D: RefUnwindSafe,
<I as Interp<'a, D>>::State: UnwindSafe,
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,
pub 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.
pub fn to_owned(&self) -> T
[src]
pub 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.
pub 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>,