pub struct GvnTable {
pub table: HashMap<ExprKey, LcnfVarId>,
pub num_classes: usize,
}Expand description
Global Value Numbering (GVN) table.
GVN assigns a value number to every expression; two expressions with
the same value number are guaranteed to produce the same result. In
our setting the “value number” is simply the canonical LcnfVarId of
the first binding that computed the expression.
Fields§
§table: HashMap<ExprKey, LcnfVarId>Map from expression key to its canonical representative variable.
num_classes: usizeNumber of distinct value numbers assigned.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for GvnTable
impl RefUnwindSafe for GvnTable
impl Send for GvnTable
impl Sync for GvnTable
impl Unpin for GvnTable
impl UnsafeUnpin for GvnTable
impl UnwindSafe for GvnTable
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