rust/tests/mir-opt/reference_prop.debuginfo.Re...

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

159 lines
4.0 KiB
Diff
Raw Normal View History

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