rust/tests/mir-opt/reference_prop.debuginfo.ReferencePropagation.diff

163 lines
4.2 KiB
Diff
Raw Normal View History

2023-05-10 13:27:54 -05:00
- // MIR for `debuginfo` before ReferencePropagation
+ // MIR for `debuginfo` after ReferencePropagation
fn debuginfo() -> () {
2023-06-06 08:47:00 -05:00
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;
2023-05-10 13:27:54 -05:00
scope 1 {
debug ref_mut_u8 => _1;
2023-06-06 08:47:00 -05:00
let _3: &u8;
let mut _28: &debuginfo::T;
2023-05-10 13:27:54 -05:00
scope 2 {
debug field => _3;
2023-06-06 08:47:00 -05:00
let _5: &u8;
2023-05-10 13:27:54 -05:00
scope 3 {
2023-06-06 08:47:00 -05:00
- debug reborrow => _5;
+ debug reborrow => _1;
2023-06-06 08:47:00 -05:00
let _9: &i32;
let _22: &&&mut u8;
let mut _27: &std::option::Option<i32>;
2023-05-10 13:27:54 -05:00
scope 4 {
debug variant_field => _9;
2023-05-10 13:27:54 -05:00
}
scope 5 {
debug constant_index => _19;
2023-06-06 08:47:00 -05:00
debug subslice => _20;
debug constant_index_from_end => _21;
let _19: &i32;
let _20: &[i32];
let _21: &i32;
let mut _26: &[i32; 10];
2023-05-13 05:31:55 -05:00
}
scope 6 {
debug multiple_borrow => _22;
2023-05-10 13:27:54 -05:00
}
}
}
}
bb0: {
StorageLive(_1);
2023-06-06 08:47:00 -05:00
StorageLive(_2);
_2 = const 5_u8;
_1 = &mut _2;
StorageLive(_3);
_28 = const debuginfo::promoted[2];
_3 = &((*_28).0: u8);
2023-06-06 08:47:00 -05:00
- StorageLive(_5);
- _5 = &(*_1);
- StorageLive(_6);
StorageLive(_7);
_7 = Option::<i32>::Some(const 0_i32);
_8 = discriminant(_7);
2024-02-11 21:56:03 -06:00
switchInt(move _8) -> [0: bb3, 1: bb2, otherwise: bb1];
2023-05-10 13:27:54 -05:00
}
bb1: {
2024-02-11 21:56:03 -06:00
unreachable;
}
bb2: {
StorageLive(_9);
_27 = const debuginfo::promoted[1];
_9 = &(((*_27) as Some).0: i32);
2023-06-06 08:47:00 -05:00
- _6 = const ();
StorageDead(_9);
2023-06-06 08:47:00 -05:00
goto -> bb4;
2023-05-10 13:27:54 -05:00
}
bb3: {
2023-06-06 08:47:00 -05:00
- _6 = const ();
goto -> bb4;
2023-05-10 13:27:54 -05:00
}
bb4: {
2023-06-06 08:47:00 -05:00
StorageDead(_7);
- StorageDead(_6);
- StorageLive(_10);
- StorageLive(_11);
- StorageLive(_12);
2023-06-06 08:47:00 -05:00
StorageLive(_13);
_26 = const debuginfo::promoted[0];
2023-06-06 08:47:00 -05:00
_13 = &(*_26);
StorageLive(_15);
_15 = RangeFull;
2023-06-23 11:53:09 -05:00
_12 = <[i32; 10] as Index<RangeFull>>::index(move _13, move _15) -> [return: bb5, unwind continue];
2023-05-10 13:27:54 -05:00
}
bb5: {
2023-06-06 08:47:00 -05:00
StorageDead(_15);
StorageDead(_13);
- _11 = &(*_12);
- _16 = Len((*_11));
+ _16 = Len((*_12));
2023-06-06 08:47:00 -05:00
_17 = const 3_usize;
_18 = Ge(move _16, move _17);
switchInt(move _18) -> [0: bb7, otherwise: bb6];
2023-05-10 13:27:54 -05:00
}
bb6: {
StorageLive(_19);
- _19 = &(*_11)[1 of 3];
+ _19 = &(*_12)[1 of 3];
2023-06-06 08:47:00 -05:00
StorageLive(_20);
- _20 = &(*_11)[2:-1];
+ _20 = &(*_12)[2:-1];
2023-06-06 08:47:00 -05:00
StorageLive(_21);
- _21 = &(*_11)[-1 of 3];
2023-06-06 08:47:00 -05:00
- _10 = const ();
+ _21 = &(*_12)[-1 of 3];
2023-06-06 08:47:00 -05:00
StorageDead(_21);
StorageDead(_20);
StorageDead(_19);
2023-06-06 08:47:00 -05:00
goto -> bb8;
2023-05-10 13:27:54 -05:00
}
bb7: {
2023-06-06 08:47:00 -05:00
- _10 = const ();
goto -> bb8;
2023-05-10 13:27:54 -05:00
}
bb8: {
- StorageDead(_12);
- StorageDead(_11);
2023-06-06 08:47:00 -05:00
- StorageDead(_10);
StorageLive(_22);
StorageLive(_23);
StorageLive(_24);
2023-06-06 08:47:00 -05:00
StorageLive(_25);
_25 = T(const 6_u8);
_24 = &mut (_25.0: u8);
_23 = &_24;
_22 = &_23;
2023-06-06 08:47:00 -05:00
_0 = const ();
StorageDead(_25);
StorageDead(_24);
StorageDead(_23);
StorageDead(_22);
2023-06-06 08:47:00 -05:00
- StorageDead(_5);
StorageDead(_3);
2023-06-06 08:47:00 -05:00
StorageDead(_2);
StorageDead(_1);
2023-06-06 08:47:00 -05:00
return;
2023-05-10 13:27:54 -05:00
}
}