| - // MIR for `reference_propagation_const_ptr` before ReferencePropagation | |
| + // MIR for `reference_propagation_const_ptr` after ReferencePropagation | |
| fn reference_propagation_const_ptr(_1: *const T, _2: *const T) -> () { | |
| debug single => _1; | |
| debug multiple => _2; | |
| let mut _0: (); | |
| let _3: (); | |
| let _4: usize; | |
| let _7: (); | |
| let mut _8: (); | |
| let _9: (); | |
| let _10: usize; | |
| let mut _13: *const usize; | |
| let _15: (); | |
| let mut _16: (); | |
| let _17: (); | |
| let _18: usize; | |
| let _22: (); | |
| let mut _23: &*const usize; | |
| let _24: (); | |
| let _25: usize; | |
| let _29: (); | |
| let mut _30: *mut *const usize; | |
| let _31: (); | |
| let _32: usize; | |
| let _35: (); | |
| let mut _36: *const usize; | |
| let _37: (); | |
| let _38: usize; | |
| let _44: (); | |
| let mut _45: *const usize; | |
| let _46: (); | |
| let _47: *const T; | |
| let _49: (); | |
| let mut _50: (); | |
| let _51: (); | |
| let _52: *const T; | |
| let mut _53: *const T; | |
| let _55: (); | |
| let mut _56: (); | |
| let _57: (); | |
| let _58: usize; | |
| let _62: (); | |
| let mut _63: (); | |
| let _64: (); | |
| let _65: usize; | |
| let _69: (); | |
| let mut _70: (); | |
| let _71: usize; | |
| let _75: (); | |
| let mut _76: (); | |
| scope 1 { | |
| debug a => _4; | |
| let _5: *const usize; | |
| scope 2 { | |
| debug b => _5; | |
| let _6: usize; | |
| scope 3 { | |
| debug c => _6; | |
| } | |
| } | |
| } | |
| scope 4 { | |
| debug a => _10; | |
| let _11: usize; | |
| scope 5 { | |
| debug a2 => _11; | |
| let mut _12: *const usize; | |
| scope 6 { | |
| debug b => _12; | |
| let _14: usize; | |
| scope 7 { | |
| debug c => _14; | |
| } | |
| } | |
| } | |
| } | |
| scope 8 { | |
| debug a => _18; | |
| let _19: *const usize; | |
| scope 9 { | |
| debug b => _19; | |
| let _20: &*const usize; | |
| scope 10 { | |
| debug d => _20; | |
| let _21: usize; | |
| scope 11 { | |
| debug c => _21; | |
| } | |
| } | |
| } | |
| } | |
| scope 12 { | |
| debug a => _25; | |
| let mut _26: *const usize; | |
| scope 13 { | |
| debug b => _26; | |
| let _27: *mut *const usize; | |
| scope 14 { | |
| debug d => _27; | |
| let _28: usize; | |
| scope 15 { | |
| debug c => _28; | |
| } | |
| } | |
| } | |
| } | |
| scope 16 { | |
| debug a => _32; | |
| let _33: *const usize; | |
| scope 17 { | |
| debug b => _33; | |
| let _34: usize; | |
| scope 18 { | |
| debug c => _34; | |
| } | |
| } | |
| } | |
| scope 19 { | |
| debug a => _38; | |
| let _39: *const usize; | |
| scope 20 { | |
| debug b1 => _39; | |
| let _40: usize; | |
| scope 21 { | |
| debug c => _40; | |
| let _41: *const usize; | |
| scope 22 { | |
| debug b2 => _41; | |
| let _42: usize; | |
| scope 23 { | |
| debug c2 => _42; | |
| let _43: *const usize; | |
| scope 24 { | |
| debug b3 => _43; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| scope 25 { | |
| - debug a => _47; | |
| + debug a => _1; | |
| let _48: T; | |
| scope 26 { | |
| debug b => _48; | |
| } | |
| } | |
| scope 27 { | |
| debug a => _52; | |
| let _54: T; | |
| scope 28 { | |
| debug b => _54; | |
| } | |
| } | |
| scope 29 { | |
| debug a => _58; | |
| let _59: *const usize; | |
| scope 30 { | |
| debug b => _59; | |
| let _60: *const usize; | |
| scope 31 { | |
| debug c => _60; | |
| let _61: usize; | |
| scope 32 { | |
| debug e => _61; | |
| } | |
| } | |
| } | |
| } | |
| scope 33 { | |
| debug a => _65; | |
| let _66: *const usize; | |
| scope 34 { | |
| debug b => _66; | |
| let _67: &*const usize; | |
| scope 35 { | |
| debug d => _67; | |
| let _68: usize; | |
| scope 36 { | |
| debug c => _68; | |
| } | |
| } | |
| } | |
| } | |
| scope 37 { | |
| debug a => _71; | |
| let mut _72: *const usize; | |
| scope 38 { | |
| debug b => _72; | |
| let _73: &mut *const usize; | |
| scope 39 { | |
| debug d => _73; | |
| let _74: usize; | |
| scope 40 { | |
| debug c => _74; | |
| } | |
| } | |
| } | |
| } | |
| bb0: { | |
| - StorageLive(_3); | |
| StorageLive(_4); | |
| _4 = const 5_usize; | |
| StorageLive(_5); | |
| _5 = &raw const _4; | |
| StorageLive(_6); | |
| - _6 = copy (*_5); | |
| + _6 = copy _4; | |
| StorageLive(_7); | |
| StorageLive(_8); | |
| _8 = (); | |
| _7 = opaque::<()>(move _8) -> [return: bb1, unwind continue]; | |
| } | |
| bb1: { | |
| StorageDead(_8); | |
| StorageDead(_7); | |
| - _3 = const (); | |
| StorageDead(_6); | |
| StorageDead(_5); | |
| StorageDead(_4); | |
| - StorageDead(_3); | |
| - StorageLive(_9); | |
| StorageLive(_10); | |
| _10 = const 5_usize; | |
| StorageLive(_11); | |
| _11 = const 7_usize; | |
| StorageLive(_12); | |
| _12 = &raw const _10; | |
| StorageLive(_13); | |
| _13 = &raw const _11; | |
| - _12 = move _13; | |
| + _12 = copy _13; | |
| StorageDead(_13); | |
| StorageLive(_14); | |
| _14 = copy (*_12); | |
| StorageLive(_15); | |
| StorageLive(_16); | |
| _16 = (); | |
| _15 = opaque::<()>(move _16) -> [return: bb2, unwind continue]; | |
| } | |
| bb2: { | |
| StorageDead(_16); | |
| StorageDead(_15); | |
| - _9 = const (); | |
| StorageDead(_14); | |
| StorageDead(_12); | |
| StorageDead(_11); | |
| StorageDead(_10); | |
| - StorageDead(_9); | |
| - StorageLive(_17); | |
| StorageLive(_18); | |
| _18 = const 5_usize; | |
| StorageLive(_19); | |
| _19 = &raw const _18; | |
| StorageLive(_20); | |
| _20 = &_19; | |
| StorageLive(_21); | |
| - _21 = copy (*_19); | |
| + _21 = copy _18; | |
| StorageLive(_22); | |
| StorageLive(_23); | |
| _23 = copy _20; | |
| - _22 = opaque::<&*const usize>(move _23) -> [return: bb3, unwind continue]; | |
| + _22 = opaque::<&*const usize>(copy _23) -> [return: bb3, unwind continue]; | |
| } | |
| bb3: { | |
| StorageDead(_23); | |
| StorageDead(_22); | |
| - _17 = const (); | |
| StorageDead(_21); | |
| StorageDead(_20); | |
| StorageDead(_19); | |
| StorageDead(_18); | |
| - StorageDead(_17); | |
| - StorageLive(_24); | |
| StorageLive(_25); | |
| _25 = const 5_usize; | |
| StorageLive(_26); | |
| _26 = &raw const _25; | |
| StorageLive(_27); | |
| _27 = &raw mut _26; | |
| StorageLive(_28); | |
| _28 = copy (*_26); | |
| StorageLive(_29); | |
| StorageLive(_30); | |
| _30 = copy _27; | |
| - _29 = opaque::<*mut *const usize>(move _30) -> [return: bb4, unwind continue]; | |
| + _29 = opaque::<*mut *const usize>(copy _30) -> [return: bb4, unwind continue]; | |
| } | |
| bb4: { | |
| StorageDead(_30); | |
| StorageDead(_29); | |
| - _24 = const (); | |
| StorageDead(_28); | |
| StorageDead(_27); | |
| StorageDead(_26); | |
| StorageDead(_25); | |
| - StorageDead(_24); | |
| - StorageLive(_31); | |
| StorageLive(_32); | |
| _32 = const 7_usize; | |
| StorageLive(_33); | |
| _33 = &raw const _32; | |
| StorageLive(_34); | |
| - _34 = copy (*_33); | |
| + _34 = copy _32; | |
| StorageLive(_35); | |
| StorageLive(_36); | |
| _36 = copy _33; | |
| - _35 = opaque::<*const usize>(move _36) -> [return: bb5, unwind continue]; | |
| + _35 = opaque::<*const usize>(copy _36) -> [return: bb5, unwind continue]; | |
| } | |
| bb5: { | |
| StorageDead(_36); | |
| StorageDead(_35); | |
| - _31 = const (); | |
| StorageDead(_34); | |
| StorageDead(_33); | |
| StorageDead(_32); | |
| - StorageDead(_31); | |
| - StorageLive(_37); | |
| StorageLive(_38); | |
| _38 = const 7_usize; | |
| StorageLive(_39); | |
| _39 = &raw const _38; | |
| StorageLive(_40); | |
| - _40 = copy (*_39); | |
| + _40 = copy _38; | |
| StorageLive(_41); | |
| _41 = copy _39; | |
| StorageLive(_42); | |
| - _42 = copy (*_41); | |
| + _42 = copy _38; | |
| StorageLive(_43); | |
| _43 = copy _41; | |
| StorageLive(_44); | |
| StorageLive(_45); | |
| _45 = copy _43; | |
| - _44 = opaque::<*const usize>(move _45) -> [return: bb6, unwind continue]; | |
| + _44 = opaque::<*const usize>(copy _45) -> [return: bb6, unwind continue]; | |
| } | |
| bb6: { | |
| StorageDead(_45); | |
| StorageDead(_44); | |
| - _37 = const (); | |
| StorageDead(_43); | |
| StorageDead(_42); | |
| StorageDead(_41); | |
| StorageDead(_40); | |
| StorageDead(_39); | |
| StorageDead(_38); | |
| - StorageDead(_37); | |
| - StorageLive(_46); | |
| - StorageLive(_47); | |
| - _47 = &raw const (*_1); | |
| StorageLive(_48); | |
| - _48 = copy (*_47); | |
| + _48 = copy (*_1); | |
| StorageLive(_49); | |
| StorageLive(_50); | |
| _50 = (); | |
| _49 = opaque::<()>(move _50) -> [return: bb7, unwind continue]; | |
| } | |
| bb7: { | |
| StorageDead(_50); | |
| StorageDead(_49); | |
| - _46 = const (); | |
| StorageDead(_48); | |
| - StorageDead(_47); | |
| - StorageDead(_46); | |
| - StorageLive(_51); | |
| StorageLive(_52); | |
| _52 = &raw const (*_2); | |
| StorageLive(_53); | |
| _53 = &raw const (*_1); | |
| - _2 = move _53; | |
| + _2 = copy _53; | |
| StorageDead(_53); | |
| StorageLive(_54); | |
| _54 = copy (*_52); | |
| StorageLive(_55); | |
| StorageLive(_56); | |
| _56 = (); | |
| _55 = opaque::<()>(move _56) -> [return: bb8, unwind continue]; | |
| } | |
| bb8: { | |
| StorageDead(_56); | |
| StorageDead(_55); | |
| - _51 = const (); | |
| StorageDead(_54); | |
| StorageDead(_52); | |
| - StorageDead(_51); | |
| - StorageLive(_57); | |
| StorageLive(_58); | |
| _58 = const 13_usize; | |
| StorageLive(_59); | |
| _59 = &raw const _58; | |
| StorageLive(_60); | |
| - _60 = &raw const (*_59); | |
| + _60 = &raw const _58; | |
| StorageLive(_61); | |
| - _61 = copy (*_60); | |
| + _61 = copy _58; | |
| StorageLive(_62); | |
| StorageLive(_63); | |
| _63 = (); | |
| _62 = opaque::<()>(move _63) -> [return: bb9, unwind continue]; | |
| } | |
| bb9: { | |
| StorageDead(_63); | |
| StorageDead(_62); | |
| - _57 = const (); | |
| StorageDead(_61); | |
| StorageDead(_60); | |
| StorageDead(_59); | |
| StorageDead(_58); | |
| - StorageDead(_57); | |
| - StorageLive(_64); | |
| StorageLive(_65); | |
| _65 = const 5_usize; | |
| StorageLive(_66); | |
| _66 = &raw const _65; | |
| StorageLive(_67); | |
| _67 = &_66; | |
| StorageLive(_68); | |
| - _68 = copy (*_66); | |
| + _68 = copy _65; | |
| StorageLive(_69); | |
| StorageLive(_70); | |
| _70 = (); | |
| _69 = opaque::<()>(move _70) -> [return: bb10, unwind continue]; | |
| } | |
| bb10: { | |
| StorageDead(_70); | |
| StorageDead(_69); | |
| - _64 = const (); | |
| StorageDead(_68); | |
| StorageDead(_67); | |
| StorageDead(_66); | |
| StorageDead(_65); | |
| - StorageDead(_64); | |
| StorageLive(_71); | |
| _71 = const 5_usize; | |
| StorageLive(_72); | |
| _72 = &raw const _71; | |
| StorageLive(_73); | |
| _73 = &mut _72; | |
| StorageLive(_74); | |
| _74 = copy (*_72); | |
| StorageLive(_75); | |
| StorageLive(_76); | |
| _76 = (); | |
| _75 = opaque::<()>(move _76) -> [return: bb11, unwind continue]; | |
| } | |
| bb11: { | |
| StorageDead(_76); | |
| StorageDead(_75); | |
| _0 = const (); | |
| StorageDead(_74); | |
| StorageDead(_73); | |
| StorageDead(_72); | |
| StorageDead(_71); | |
| return; | |
| } | |
| } | |