rust/tests/mir-opt/building/logical_or_in_conditional.test_complex.built.after.mir

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

213 lines
3.5 KiB
Rust
Raw Normal View History

2023-05-20 04:14:16 -05:00
// MIR for `test_complex` after built
fn test_complex() -> () {
let mut _0: ();
let _1: ();
let mut _2: E;
let mut _3: isize;
let mut _4: bool;
let mut _5: bool;
let mut _6: u8;
let mut _7: Droppy;
let mut _8: bool;
let mut _9: u8;
let mut _10: Droppy;
let mut _11: bool;
let mut _12: E;
let mut _13: isize;
2023-05-20 04:14:16 -05:00
bb0: {
StorageLive(_1);
StorageLive(_2);
2024-02-15 19:57:24 -06:00
_2 = E::f() -> [return: bb1, unwind: bb37];
2023-05-20 04:14:16 -05:00
}
bb1: {
PlaceMention(_2);
2023-05-20 04:14:16 -05:00
_3 = discriminant(_2);
2024-02-15 19:57:24 -06:00
switchInt(move _3) -> [0: bb5, otherwise: bb3];
2023-05-20 04:14:16 -05:00
}
bb2: {
2024-02-11 21:56:03 -06:00
FakeRead(ForMatchedPlace(None), _2);
unreachable;
2023-05-20 04:14:16 -05:00
}
bb3: {
2024-02-15 19:57:24 -06:00
goto -> bb22;
2023-05-20 04:14:16 -05:00
}
bb4: {
2024-02-15 19:57:24 -06:00
goto -> bb2;
2023-05-20 04:14:16 -05:00
}
bb5: {
2024-02-15 19:57:24 -06:00
falseEdge -> [real: bb7, imaginary: bb3];
2023-05-20 04:14:16 -05:00
}
bb6: {
2024-02-15 19:57:24 -06:00
goto -> bb3;
2024-02-11 21:56:03 -06:00
}
bb7: {
2024-02-15 19:57:24 -06:00
StorageLive(_4);
_4 = always_true() -> [return: bb8, unwind: bb37];
}
bb8: {
switchInt(move _4) -> [0: bb10, otherwise: bb9];
}
bb9: {
StorageLive(_5);
StorageLive(_6);
StorageLive(_7);
_7 = Droppy(const 0_u8);
_6 = (_7.0: u8);
_5 = Gt(move _6, const 0_u8);
2024-02-15 19:57:24 -06:00
switchInt(move _5) -> [0: bb12, otherwise: bb11];
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb10: {
goto -> bb16;
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb11: {
drop(_7) -> [return: bb13, unwind: bb37];
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb12: {
goto -> bb14;
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb13: {
2024-02-11 21:56:03 -06:00
StorageDead(_7);
StorageDead(_6);
2024-02-15 19:57:24 -06:00
goto -> bb19;
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb14: {
drop(_7) -> [return: bb15, unwind: bb37];
2024-02-11 21:56:03 -06:00
}
2024-02-15 19:57:24 -06:00
bb15: {
StorageDead(_7);
StorageDead(_6);
2024-02-15 19:57:24 -06:00
goto -> bb16;
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb16: {
StorageLive(_8);
StorageLive(_9);
StorageLive(_10);
_10 = Droppy(const 1_u8);
_9 = (_10.0: u8);
_8 = Gt(move _9, const 1_u8);
2024-02-15 19:57:24 -06:00
switchInt(move _8) -> [0: bb18, otherwise: bb17];
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb17: {
drop(_10) -> [return: bb19, unwind: bb37];
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb18: {
goto -> bb20;
2024-02-11 21:56:03 -06:00
}
2024-02-15 19:57:24 -06:00
bb19: {
StorageDead(_10);
StorageDead(_9);
2023-05-20 04:14:16 -05:00
_1 = const ();
2024-02-15 19:57:24 -06:00
goto -> bb23;
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb20: {
drop(_10) -> [return: bb21, unwind: bb37];
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb21: {
StorageDead(_10);
StorageDead(_9);
2024-02-15 19:57:24 -06:00
goto -> bb22;
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb22: {
_1 = const ();
2024-02-15 19:57:24 -06:00
goto -> bb23;
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb23: {
StorageDead(_8);
StorageDead(_5);
StorageDead(_4);
StorageDead(_2);
StorageDead(_1);
StorageLive(_11);
2024-02-15 19:57:24 -06:00
_11 = always_true() -> [return: bb24, unwind: bb37];
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb24: {
switchInt(move _11) -> [0: bb26, otherwise: bb25];
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb25: {
goto -> bb35;
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb26: {
goto -> bb27;
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb27: {
2024-02-11 21:56:03 -06:00
StorageLive(_12);
2024-02-15 19:57:24 -06:00
_12 = E::f() -> [return: bb28, unwind: bb37];
2023-05-20 04:14:16 -05:00
}
2024-02-15 19:57:24 -06:00
bb28: {
2024-02-11 21:56:03 -06:00
PlaceMention(_12);
_13 = discriminant(_12);
2024-02-15 19:57:24 -06:00
switchInt(move _13) -> [1: bb32, otherwise: bb30];
}
2024-02-15 19:57:24 -06:00
bb29: {
2024-02-11 21:56:03 -06:00
FakeRead(ForMatchedPlace(None), _12);
unreachable;
}
2024-02-15 19:57:24 -06:00
bb30: {
goto -> bb35;
}
2024-02-15 19:57:24 -06:00
bb31: {
goto -> bb29;
}
2024-02-15 19:57:24 -06:00
bb32: {
falseEdge -> [real: bb34, imaginary: bb30];
}
bb33: {
goto -> bb30;
}
bb34: {
2024-02-11 21:56:03 -06:00
_0 = const ();
2024-02-15 19:57:24 -06:00
goto -> bb36;
2024-02-11 21:56:03 -06:00
}
2024-02-15 19:57:24 -06:00
bb35: {
2024-02-11 21:56:03 -06:00
_0 = const ();
2024-02-15 19:57:24 -06:00
goto -> bb36;
2024-02-11 21:56:03 -06:00
}
2024-02-15 19:57:24 -06:00
bb36: {
StorageDead(_11);
StorageDead(_12);
2023-05-20 04:14:16 -05:00
return;
}
2024-02-15 19:57:24 -06:00
bb37 (cleanup): {
2023-05-20 04:14:16 -05:00
resume;
}
}