- // MIR for `main` before GVN + // MIR for `main` after GVN fn main() -> () { let mut _0: (); let mut _1: u32; let _2: (); let mut _3: u32; let mut _4: *mut u32; scope 1 { debug x => _1; let _5: u32; scope 2 { } scope 3 { debug y => _5; } } bb0: { StorageLive(_1); _1 = const 42_u32; StorageLive(_2); StorageLive(_3); StorageLive(_4); _4 = const {ALLOC0: *mut u32}; _3 = (*_4); _1 = move _3; StorageDead(_3); StorageDead(_4); _2 = const (); StorageDead(_2); StorageLive(_5); _5 = _1; _0 = const (); StorageDead(_5); StorageDead(_1); return; } } ALLOC0 (static: STATIC, size: 4, align: 4) { 42 42 42 42 │ BBBB }