pub struct Dfs { /* private fields */ }
Expand description
A depth-first traversal.
This is a fairly low-level traversal type, and is generally intended to be used as a building block for making specific pre-order or post-order traversals for whatever problem is at hand.
This type may be reused multiple times across different passes or functions and will internally reuse any heap allocations its already made.
Traversal is not recursive.
Implementations§
Source§impl Dfs
impl Dfs
Sourcepub fn iter<'a>(&'a mut self, func: &'a Function) -> DfsIter<'a> ⓘ
pub fn iter<'a>(&'a mut self, func: &'a Function) -> DfsIter<'a> ⓘ
Perform a depth-first traversal over the given function.
Yields pairs of (Event, ir::Block)
.
This iterator can be used to perform either pre- or post-order traversals, or a combination of the two.
Sourcepub fn pre_order_iter<'a>(
&'a mut self,
func: &'a Function,
) -> DfsPreOrderIter<'a> ⓘ
pub fn pre_order_iter<'a>( &'a mut self, func: &'a Function, ) -> DfsPreOrderIter<'a> ⓘ
Perform a pre-order traversal over the given function.
Yields ir::Block
items.
Sourcepub fn post_order_iter<'a>(
&'a mut self,
func: &'a Function,
) -> DfsPostOrderIter<'a> ⓘ
pub fn post_order_iter<'a>( &'a mut self, func: &'a Function, ) -> DfsPostOrderIter<'a> ⓘ
Perform a post-order traversal over the given function.
Yields ir::Block
items.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Dfs
impl RefUnwindSafe for Dfs
impl Send for Dfs
impl Sync for Dfs
impl Unpin for Dfs
impl UnwindSafe for Dfs
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)