pub struct LoopStructure {
pub header: LcnfVarId,
pub body_vars: HashSet<LcnfVarId>,
pub exit_vars: HashSet<LcnfVarId>,
pub nest_depth: u32,
}Expand description
Identifies a loop in the LCNF control-flow graph.
In ANF / LCNF, loops manifest as (mutually) recursive function bindings. The “header” is the function id that forms the back-edge target.
Fields§
§header: LcnfVarIdThe variable id of the loop header (recursive entry point).
body_vars: HashSet<LcnfVarId>All variables defined inside the loop body.
exit_vars: HashSet<LcnfVarId>Variables that are live on loop exit (used outside the loop).
nest_depth: u32Nesting depth (0 = outermost loop).
Trait Implementations§
Source§impl Clone for LoopStructure
impl Clone for LoopStructure
Source§fn clone(&self) -> LoopStructure
fn clone(&self) -> LoopStructure
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for LoopStructure
impl RefUnwindSafe for LoopStructure
impl Send for LoopStructure
impl Sync for LoopStructure
impl Unpin for LoopStructure
impl UnsafeUnpin for LoopStructure
impl UnwindSafe for LoopStructure
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