- // MIR for `main` before GVN + // MIR for `main` after GVN fn main() -> () { let mut _0: (); let _1: (u32, u32); let _2: (); let mut _3: (u32, u32); scope 1 { debug x => _1; } bb0: { - StorageLive(_1); - _1 = (const 1_u32, const 2_u32); + nop; + _1 = const (1_u32, 2_u32); StorageLive(_2); StorageLive(_3); - _3 = copy _1; - _2 = consume(move _3) -> [return: bb1, unwind unreachable]; + _3 = const (1_u32, 2_u32); + _2 = consume(const (1_u32, 2_u32)) -> [return: bb1, unwind unreachable]; } bb1: { StorageDead(_3); StorageDead(_2); _0 = const (); - StorageDead(_1); + nop; return; } } + + ALLOC0 (size: 8, align: 4) { .. }