| - // MIR for `wide_ptr_integer` before GVN |
| + // MIR for `wide_ptr_integer` after GVN |
| |
| fn wide_ptr_integer() -> () { |
| let mut _0: (); |
| let _1: *const [u8]; |
| let mut _2: (usize, usize); |
| let mut _4: (usize, usize); |
| let _5: (); |
| let mut _6: bool; |
| let mut _7: *const [u8]; |
| let mut _8: *const [u8]; |
| let _9: (); |
| let mut _10: bool; |
| let mut _11: *const [u8]; |
| let mut _12: *const [u8]; |
| let _13: (); |
| let mut _14: bool; |
| let mut _15: *const [u8]; |
| let mut _16: *const [u8]; |
| let _17: (); |
| let mut _18: bool; |
| let mut _19: *const [u8]; |
| let mut _20: *const [u8]; |
| let _21: (); |
| let mut _22: bool; |
| let mut _23: *const [u8]; |
| let mut _24: *const [u8]; |
| let _25: (); |
| let mut _26: bool; |
| let mut _27: *const [u8]; |
| let mut _28: *const [u8]; |
| scope 1 { |
| debug a => _1; |
| let _3: *const [u8]; |
| scope 2 { |
| debug b => _3; |
| } |
| } |
| |
| bb0: { |
| - StorageLive(_1); |
| + nop; |
| StorageLive(_2); |
| - _2 = (const 1_usize, const 1_usize); |
| - _1 = move _2 as *const [u8] (Transmute); |
| + _2 = const (1_usize, 1_usize); |
| + _1 = const Indirect { alloc_id: ALLOC0, offset: Size(0 bytes) }: *const [u8]; |
| StorageDead(_2); |
| - StorageLive(_3); |
| + nop; |
| StorageLive(_4); |
| - _4 = (const 1_usize, const 2_usize); |
| - _3 = move _4 as *const [u8] (Transmute); |
| + _4 = const (1_usize, 2_usize); |
| + _3 = const Indirect { alloc_id: ALLOC1, offset: Size(0 bytes) }: *const [u8]; |
| StorageDead(_4); |
| StorageLive(_5); |
| StorageLive(_6); |
| StorageLive(_7); |
| - _7 = copy _1; |
| + _7 = const Indirect { alloc_id: ALLOC0, offset: Size(0 bytes) }: *const [u8]; |
| StorageLive(_8); |
| - _8 = copy _3; |
| - _6 = Eq(move _7, move _8); |
| + _8 = const Indirect { alloc_id: ALLOC1, offset: Size(0 bytes) }: *const [u8]; |
| + _6 = const false; |
| StorageDead(_8); |
| StorageDead(_7); |
| - _5 = opaque::<bool>(move _6) -> [return: bb1, unwind continue]; |
| + _5 = opaque::<bool>(const false) -> [return: bb1, unwind continue]; |
| } |
| |
| bb1: { |
| StorageDead(_6); |
| StorageDead(_5); |
| StorageLive(_9); |
| StorageLive(_10); |
| StorageLive(_11); |
| - _11 = copy _1; |
| + _11 = const Indirect { alloc_id: ALLOC0, offset: Size(0 bytes) }: *const [u8]; |
| StorageLive(_12); |
| - _12 = copy _3; |
| - _10 = Ne(move _11, move _12); |
| + _12 = const Indirect { alloc_id: ALLOC1, offset: Size(0 bytes) }: *const [u8]; |
| + _10 = const true; |
| StorageDead(_12); |
| StorageDead(_11); |
| - _9 = opaque::<bool>(move _10) -> [return: bb2, unwind continue]; |
| + _9 = opaque::<bool>(const true) -> [return: bb2, unwind continue]; |
| } |
| |
| bb2: { |
| StorageDead(_10); |
| StorageDead(_9); |
| StorageLive(_13); |
| StorageLive(_14); |
| StorageLive(_15); |
| - _15 = copy _1; |
| + _15 = const Indirect { alloc_id: ALLOC0, offset: Size(0 bytes) }: *const [u8]; |
| StorageLive(_16); |
| - _16 = copy _3; |
| - _14 = Lt(move _15, move _16); |
| + _16 = const Indirect { alloc_id: ALLOC1, offset: Size(0 bytes) }: *const [u8]; |
| + _14 = const true; |
| StorageDead(_16); |
| StorageDead(_15); |
| - _13 = opaque::<bool>(move _14) -> [return: bb3, unwind continue]; |
| + _13 = opaque::<bool>(const true) -> [return: bb3, unwind continue]; |
| } |
| |
| bb3: { |
| StorageDead(_14); |
| StorageDead(_13); |
| StorageLive(_17); |
| StorageLive(_18); |
| StorageLive(_19); |
| - _19 = copy _1; |
| + _19 = const Indirect { alloc_id: ALLOC0, offset: Size(0 bytes) }: *const [u8]; |
| StorageLive(_20); |
| - _20 = copy _3; |
| - _18 = Le(move _19, move _20); |
| + _20 = const Indirect { alloc_id: ALLOC1, offset: Size(0 bytes) }: *const [u8]; |
| + _18 = const true; |
| StorageDead(_20); |
| StorageDead(_19); |
| - _17 = opaque::<bool>(move _18) -> [return: bb4, unwind continue]; |
| + _17 = opaque::<bool>(const true) -> [return: bb4, unwind continue]; |
| } |
| |
| bb4: { |
| StorageDead(_18); |
| StorageDead(_17); |
| StorageLive(_21); |
| StorageLive(_22); |
| StorageLive(_23); |
| - _23 = copy _1; |
| + _23 = const Indirect { alloc_id: ALLOC0, offset: Size(0 bytes) }: *const [u8]; |
| StorageLive(_24); |
| - _24 = copy _3; |
| - _22 = Gt(move _23, move _24); |
| + _24 = const Indirect { alloc_id: ALLOC1, offset: Size(0 bytes) }: *const [u8]; |
| + _22 = const false; |
| StorageDead(_24); |
| StorageDead(_23); |
| - _21 = opaque::<bool>(move _22) -> [return: bb5, unwind continue]; |
| + _21 = opaque::<bool>(const false) -> [return: bb5, unwind continue]; |
| } |
| |
| bb5: { |
| StorageDead(_22); |
| StorageDead(_21); |
| StorageLive(_25); |
| StorageLive(_26); |
| StorageLive(_27); |
| - _27 = copy _1; |
| + _27 = const Indirect { alloc_id: ALLOC0, offset: Size(0 bytes) }: *const [u8]; |
| StorageLive(_28); |
| - _28 = copy _3; |
| - _26 = Ge(move _27, move _28); |
| + _28 = const Indirect { alloc_id: ALLOC1, offset: Size(0 bytes) }: *const [u8]; |
| + _26 = const false; |
| StorageDead(_28); |
| StorageDead(_27); |
| - _25 = opaque::<bool>(move _26) -> [return: bb6, unwind continue]; |
| + _25 = opaque::<bool>(const false) -> [return: bb6, unwind continue]; |
| } |
| |
| bb6: { |
| StorageDead(_26); |
| StorageDead(_25); |
| _0 = const (); |
| - StorageDead(_3); |
| - StorageDead(_1); |
| + nop; |
| + nop; |
| return; |
| } |
| } |
| + |
| + ALLOC1 (size: 16, align: 8) { .. } |
| + |
| + ALLOC0 (size: 16, align: 8) { .. } |
| |