pub struct BasicBlock { /* private fields */ }Implementations§
source§impl BasicBlock
impl BasicBlock
pub fn new(meta: Meta, index: usize, loop_depth: usize) -> BasicBlock
pub fn from_raw_parts( index: usize, meta: Meta, loop_depth: usize, stmts: Vec<Statement>, predecessors: HashSet<usize>, successors: HashSet<usize> ) -> BasicBlock
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn in_loop(&self) -> bool
pub fn loop_depth(&self) -> usize
pub fn iter(&self) -> impl Iterator<Item = &Statement>
pub fn index(&self) -> usize
pub fn meta(&self) -> &Meta
pub fn statements(&self) -> &Vec<Statement>
pub fn predecessors(&self) -> &HashSet<usize>
pub fn successors(&self) -> &HashSet<usize>
pub fn propagate_degrees(&mut self, env: &mut DegreeEnvironment) -> bool
pub fn propagate_values(&mut self, env: &mut ValueEnvironment) -> bool
pub fn propagate_types(&mut self, vars: &Declarations)
Trait Implementations§
source§impl Clone for BasicBlock
impl Clone for BasicBlock
source§fn clone(&self) -> BasicBlock
fn clone(&self) -> BasicBlock
Returns a copy 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 moresource§impl Debug for BasicBlock
impl Debug for BasicBlock
source§impl DirectedGraphNode for BasicBlock
impl DirectedGraphNode for BasicBlock
source§impl VariableMeta for BasicBlock
impl VariableMeta for BasicBlock
source§fn cache_variable_use(&mut self)
fn cache_variable_use(&mut self)
Compute variables read/written by the node. Must be called before either
of the getters are called. To avoid interior mutability this needs to be
called again whenever the node is mutated in a way that may invalidate
the cached variable use.
source§fn locals_read(&self) -> &VariableUses
fn locals_read(&self) -> &VariableUses
Get the set of variables read by the IR node.
source§fn locals_written(&self) -> &VariableUses
fn locals_written(&self) -> &VariableUses
Get the set of variables written by the IR node.
source§fn signals_read(&self) -> &VariableUses
fn signals_read(&self) -> &VariableUses
Get the set of signals read by the IR node. Note that this does not
include signals belonging to sub-components.
source§fn signals_written(&self) -> &VariableUses
fn signals_written(&self) -> &VariableUses
Get the set of signals written by the IR node. Note that this does not
include signals belonging to sub-components.
source§fn components_read(&self) -> &VariableUses
fn components_read(&self) -> &VariableUses
Get the set of components read by the IR node. Note that a component
read is typically a signal read for a signal exported by the component.
source§fn components_written(&self) -> &VariableUses
fn components_written(&self) -> &VariableUses
Get the set of components written by the IR node. Note that a component
write may either be a component initialization, or a signal write for a
signal exported by the component.
source§fn variables_read<'a>(
&'a self
) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
fn variables_read<'a>( &'a self ) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
Get the set of variables read by the IR node. Note that this is simply
the union of all locals, signals, and components read by the node.
source§fn variables_written<'a>(
&'a self
) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
fn variables_written<'a>( &'a self ) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
Get the set of variables written by the IR node. Note that this is
simply the union of all locals, signals, and components written.
source§fn variables_used<'a>(
&'a self
) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
fn variables_used<'a>( &'a self ) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
Get the set of variables either read or written by the IR node.