pub struct UseDefChain {
pub uses: HashMap<LcnfVarId, Vec<LcnfVarId>>,
pub defs: HashMap<LcnfVarId, LcnfLetValue>,
}Expand description
Bidirectional use-def / def-use chains for the IR.
defs[x]= the let-value that definesx(there is exactly one in SSA).uses[x]= all variables that referencexin their definitions.
Fields§
§uses: HashMap<LcnfVarId, Vec<LcnfVarId>>Forward: variable → all variables that use it.
defs: HashMap<LcnfVarId, LcnfLetValue>Backward: variable → its defining expression.
Implementations§
Source§impl UseDefChain
impl UseDefChain
Trait Implementations§
Source§impl Debug for UseDefChain
impl Debug for UseDefChain
Source§impl Default for UseDefChain
impl Default for UseDefChain
Source§fn default() -> UseDefChain
fn default() -> UseDefChain
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for UseDefChain
impl RefUnwindSafe for UseDefChain
impl Send for UseDefChain
impl Sync for UseDefChain
impl Unpin for UseDefChain
impl UnsafeUnpin for UseDefChain
impl UnwindSafe for UseDefChain
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