rust/tests/mir-opt/reference_prop.debuginfo.ReferencePropagation.diff
2023-06-15 15:19:11 -04:00

164 lines
4.3 KiB
Diff

- // MIR for `debuginfo` before ReferencePropagation
+ // MIR for `debuginfo` after ReferencePropagation
fn debuginfo() -> () {
let mut _0: ();
let _1: &mut u8;
let mut _2: u8;
let _4: debuginfo::T;
let _6: ();
let mut _7: std::option::Option<i32>;
let mut _8: isize;
let _10: ();
let mut _11: &[i32];
let _12: &[i32];
let mut _13: &[i32; 10];
let _14: [i32; 10];
let mut _15: std::ops::RangeFull;
let mut _16: usize;
let mut _17: usize;
let mut _18: bool;
let _23: &&mut u8;
let _24: &mut u8;
let mut _25: debuginfo::T;
scope 1 {
- debug ref_mut_u8 => _1;
+ debug ref_mut_u8 => &_2;
let _3: &u8;
let mut _28: &debuginfo::T;
scope 2 {
- debug field => _3;
+ debug field => &((*_28).0: u8);
let _5: &u8;
scope 3 {
- debug reborrow => _5;
+ debug reborrow => &_2;
let _9: &i32;
let _22: &&&mut u8;
let mut _27: &std::option::Option<i32>;
scope 4 {
- debug variant_field => _9;
+ debug variant_field => &(((*_27) as Some).0: i32);
}
scope 5 {
- debug constant_index => _19;
+ debug constant_index => &(*_11)[1 of 3];
debug subslice => _20;
debug constant_index_from_end => _21;
let _19: &i32;
let _20: &[i32];
let _21: &i32;
let mut _26: &[i32; 10];
}
scope 6 {
- debug multiple_borrow => _22;
+ debug multiple_borrow => &&&(_25.0: u8);
}
}
}
}
bb0: {
- StorageLive(_1);
StorageLive(_2);
_2 = const 5_u8;
- _1 = &mut _2;
- StorageLive(_3);
_28 = const _;
- _3 = &((*_28).0: u8);
- StorageLive(_5);
- _5 = &(*_1);
- StorageLive(_6);
StorageLive(_7);
_7 = Option::<i32>::Some(const 0_i32);
_8 = discriminant(_7);
switchInt(move _8) -> [0: bb3, 1: bb1, otherwise: bb2];
}
bb1: {
- StorageLive(_9);
_27 = const _;
- _9 = &(((*_27) as Some).0: i32);
- _6 = const ();
- StorageDead(_9);
goto -> bb4;
}
bb2: {
unreachable;
}
bb3: {
- _6 = const ();
goto -> bb4;
}
bb4: {
StorageDead(_7);
- StorageDead(_6);
- StorageLive(_10);
StorageLive(_11);
StorageLive(_12);
StorageLive(_13);
_26 = const _;
_13 = &(*_26);
StorageLive(_15);
_15 = RangeFull;
_12 = <[i32; 10] as Index<RangeFull>>::index(move _13, move _15) -> bb5;
}
bb5: {
StorageDead(_15);
StorageDead(_13);
_11 = &(*_12);
_16 = Len((*_11));
_17 = const 3_usize;
_18 = Ge(move _16, move _17);
switchInt(move _18) -> [0: bb7, otherwise: bb6];
}
bb6: {
- StorageLive(_19);
- _19 = &(*_11)[1 of 3];
StorageLive(_20);
_20 = &(*_11)[2:-1];
StorageLive(_21);
_21 = &(*_11)[-1 of 3];
- _10 = const ();
StorageDead(_21);
StorageDead(_20);
- StorageDead(_19);
goto -> bb8;
}
bb7: {
- _10 = const ();
goto -> bb8;
}
bb8: {
StorageDead(_12);
StorageDead(_11);
- StorageDead(_10);
- StorageLive(_22);
- StorageLive(_23);
- StorageLive(_24);
StorageLive(_25);
_25 = T(const 6_u8);
- _24 = &mut (_25.0: u8);
- _23 = &_24;
- _22 = &_23;
_0 = const ();
StorageDead(_25);
- StorageDead(_24);
- StorageDead(_23);
- StorageDead(_22);
- StorageDead(_5);
- StorageDead(_3);
StorageDead(_2);
- StorageDead(_1);
return;
}
}