- // MIR for `main` before GVN + // MIR for `main` after GVN fn main() -> () { let mut _0: (); let _1: u8; let mut _2: u8; let mut _3: (u8, bool); scope 1 { debug x => _1; } bb0: { StorageLive(_1); StorageLive(_2); - _2 = const 2_u32 as u8 (IntToInt); - _3 = AddWithOverflow(copy _2, const 1_u8); - assert(!move (_3.1: bool), "attempt to compute `{} + {}`, which would overflow", move _2, const 1_u8) -> [success: bb1, unwind continue]; + _2 = const 2_u8; + _3 = const (3_u8, false); + assert(!const false, "attempt to compute `{} + {}`, which would overflow", const 2_u8, const 1_u8) -> [success: bb1, unwind continue]; } bb1: { - _1 = move (_3.0: u8); + _1 = const 3_u8; StorageDead(_2); _0 = const (); StorageDead(_1); return; } + } + + ALLOC0 (size: 2, align: 1) { + 03 00 │ .. }