d69725d5d5
Since this only affects `PreCodegen MIR, and it would be nice for that to be resilient to permutations of things that don't affect the actual semantic behaviours.
86 lines
6.3 KiB
Diff
86 lines
6.3 KiB
Diff
- // MIR for `inner` before ConstProp
|
|
+ // MIR for `inner` after ConstProp
|
|
|
|
fn inner(_1: u32) -> i64 {
|
|
debug fields => _1; // in scope 0 at $DIR/issue_101973.rs:+0:14: +0:20
|
|
let mut _0: i64; // return place in scope 0 at $DIR/issue_101973.rs:+0:30: +0:33
|
|
let mut _2: i32; // in scope 0 at $DIR/issue_101973.rs:+1:5: +1:65
|
|
let mut _3: u32; // in scope 0 at $DIR/issue_101973.rs:+1:5: +1:58
|
|
let mut _4: u32; // in scope 0 at $DIR/issue_101973.rs:+1:5: +1:17
|
|
let mut _5: u32; // in scope 0 at $DIR/issue_101973.rs:+1:10: +1:16
|
|
let mut _6: u32; // in scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
let mut _7: u32; // in scope 0 at $DIR/issue_101973.rs:+1:31: +1:52
|
|
let mut _8: u32; // in scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
let mut _9: u32; // in scope 0 at $DIR/issue_101973.rs:+1:33: +1:39
|
|
let mut _10: u32; // in scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
let mut _11: bool; // in scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
let mut _12: u32; // in scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
let mut _13: bool; // in scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
scope 1 (inlined imm8) { // at $DIR/issue_101973.rs:15:5: 15:17
|
|
debug x => _1; // in scope 1 at $DIR/issue_101973.rs:6:13: 6:14
|
|
let mut _14: u32; // in scope 1 at $DIR/issue_101973.rs:8:12: 8:20
|
|
let mut _15: u32; // in scope 1 at $DIR/issue_101973.rs:8:12: 8:27
|
|
scope 2 {
|
|
debug out => _4; // in scope 2 at $DIR/issue_101973.rs:7:9: 7:16
|
|
}
|
|
}
|
|
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at $DIR/issue_101973.rs:15:18: 15:58
|
|
debug self => _4; // in scope 3 at $SRC_DIR/core/src/num/uint_macros.rs:LL:COL
|
|
debug n => _6; // in scope 3 at $SRC_DIR/core/src/num/uint_macros.rs:LL:COL
|
|
}
|
|
|
|
bb0: {
|
|
StorageLive(_2); // scope 0 at $DIR/issue_101973.rs:+1:5: +1:65
|
|
StorageLive(_3); // scope 0 at $DIR/issue_101973.rs:+1:5: +1:58
|
|
StorageLive(_4); // scope 0 at $DIR/issue_101973.rs:+1:5: +1:17
|
|
StorageLive(_15); // scope 2 at $DIR/issue_101973.rs:8:12: 8:27
|
|
StorageLive(_14); // scope 2 at $DIR/issue_101973.rs:8:12: 8:20
|
|
_14 = Shr(_1, const 0_i32); // scope 2 at $DIR/issue_101973.rs:8:12: 8:20
|
|
_15 = BitAnd(move _14, const 255_u32); // scope 2 at $DIR/issue_101973.rs:8:12: 8:27
|
|
StorageDead(_14); // scope 2 at $DIR/issue_101973.rs:8:26: 8:27
|
|
_4 = BitOr(const 0_u32, move _15); // scope 2 at $DIR/issue_101973.rs:8:5: 8:27
|
|
StorageDead(_15); // scope 2 at $DIR/issue_101973.rs:8:26: 8:27
|
|
StorageLive(_6); // scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
StorageLive(_7); // scope 0 at $DIR/issue_101973.rs:+1:31: +1:52
|
|
StorageLive(_8); // scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
- _10 = const 8_i32 as u32 (IntToInt); // scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
- _11 = Lt(move _10, const 32_u32); // scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
- assert(move _11, "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
+ _10 = const 8_u32; // scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
+ _11 = const true; // scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
+ assert(const true, "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
}
|
|
|
|
bb1: {
|
|
_8 = Shr(_1, const 8_i32); // scope 0 at $DIR/issue_101973.rs:+1:32: +1:45
|
|
_7 = BitAnd(move _8, const 15_u32); // scope 0 at $DIR/issue_101973.rs:+1:31: +1:52
|
|
StorageDead(_8); // scope 0 at $DIR/issue_101973.rs:+1:51: +1:52
|
|
- _12 = const 1_i32 as u32 (IntToInt); // scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
- _13 = Lt(move _12, const 32_u32); // scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
- assert(move _13, "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
+ _12 = const 1_u32; // scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
+ _13 = const true; // scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
+ assert(const true, "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
}
|
|
|
|
bb2: {
|
|
_6 = Shl(move _7, const 1_i32); // scope 0 at $DIR/issue_101973.rs:+1:31: +1:57
|
|
StorageDead(_7); // scope 0 at $DIR/issue_101973.rs:+1:56: +1:57
|
|
_3 = rotate_right::<u32>(_4, _6) -> [return: bb3, unwind unreachable]; // scope 3 at $SRC_DIR/core/src/num/uint_macros.rs:LL:COL
|
|
// mir::Constant
|
|
// + span: $SRC_DIR/core/src/num/uint_macros.rs:LL:COL
|
|
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) }
|
|
}
|
|
|
|
bb3: {
|
|
StorageDead(_6); // scope 0 at $DIR/issue_101973.rs:+1:57: +1:58
|
|
StorageDead(_4); // scope 0 at $DIR/issue_101973.rs:+1:57: +1:58
|
|
_2 = move _3 as i32 (IntToInt); // scope 0 at $DIR/issue_101973.rs:+1:5: +1:65
|
|
StorageDead(_3); // scope 0 at $DIR/issue_101973.rs:+1:64: +1:65
|
|
_0 = move _2 as i64 (IntToInt); // scope 0 at $DIR/issue_101973.rs:+1:5: +1:72
|
|
StorageDead(_2); // scope 0 at $DIR/issue_101973.rs:+1:71: +1:72
|
|
return; // scope 0 at $DIR/issue_101973.rs:+2:2: +2:2
|
|
}
|
|
}
|
|
|