- // MIR for `generic` before GVN + // MIR for `generic` after GVN fn generic() -> () { let mut _0: (); let _1: usize; let mut _2: usize; let mut _4: usize; let mut _6: usize; let mut _8: usize; let mut _10: usize; let mut _12: usize; let mut _14: usize; scope 1 { debug gx => _1; let _3: usize; scope 2 { debug gy => _3; let _5: usize; scope 3 { debug dx => _5; let _7: usize; scope 4 { debug dy => _7; let _9: usize; scope 5 { debug zA0 => _9; let _11: usize; scope 6 { debug zA1 => _11; let _13: usize; scope 7 { debug zB => _13; } } } } } } } bb0: { StorageLive(_1); StorageLive(_2); _2 = OffsetOf(Gamma, [(0, 0)]); _1 = must_use::(move _2) -> [return: bb1, unwind unreachable]; } bb1: { StorageDead(_2); StorageLive(_3); StorageLive(_4); _4 = OffsetOf(Gamma, [(0, 1)]); _3 = must_use::(move _4) -> [return: bb2, unwind unreachable]; } bb2: { StorageDead(_4); StorageLive(_5); StorageLive(_6); - _6 = OffsetOf(Delta, [(0, 1)]); - _5 = must_use::(move _6) -> [return: bb3, unwind unreachable]; + _6 = const 0_usize; + _5 = must_use::(const 0_usize) -> [return: bb3, unwind unreachable]; } bb3: { StorageDead(_6); StorageLive(_7); StorageLive(_8); - _8 = OffsetOf(Delta, [(0, 2)]); - _7 = must_use::(move _8) -> [return: bb4, unwind unreachable]; + _8 = const 2_usize; + _7 = must_use::(const 2_usize) -> [return: bb4, unwind unreachable]; } bb4: { StorageDead(_8); StorageLive(_9); StorageLive(_10); _10 = OffsetOf(Zeta, [(0, 0)]); _9 = must_use::(move _10) -> [return: bb5, unwind unreachable]; } bb5: { StorageDead(_10); StorageLive(_11); StorageLive(_12); _12 = OffsetOf(Zeta, [(0, 1)]); _11 = must_use::(move _12) -> [return: bb6, unwind unreachable]; } bb6: { StorageDead(_12); StorageLive(_13); StorageLive(_14); _14 = OffsetOf(Zeta, [(1, 0)]); _13 = must_use::(move _14) -> [return: bb7, unwind unreachable]; } bb7: { StorageDead(_14); _0 = const (); StorageDead(_13); StorageDead(_11); StorageDead(_9); StorageDead(_7); StorageDead(_5); StorageDead(_3); StorageDead(_1); return; } }