rust/tests/mir-opt/pre-codegen/optimizes_into_variable.main.GVN.32bit.panic-unwind.diff
2024-08-18 16:07:33 -07:00

68 lines
2.0 KiB
Diff

- // MIR for `main` before GVN
+ // MIR for `main` after GVN
fn main() -> () {
let mut _0: ();
let _1: i32;
let mut _2: (i32, bool);
let mut _4: [i32; 6];
let _5: usize;
let mut _6: usize;
let mut _7: bool;
let mut _9: u32;
scope 1 {
debug x => _1;
let _3: i32;
scope 2 {
debug y => _3;
let _8: u32;
scope 3 {
debug z => _8;
}
}
}
bb0: {
StorageLive(_1);
- _2 = AddWithOverflow(const 2_i32, const 2_i32);
- assert(!move (_2.1: bool), "attempt to compute `{} + {}`, which would overflow", const 2_i32, const 2_i32) -> [success: bb1, unwind continue];
+ _2 = const (4_i32, false);
+ assert(!const false, "attempt to compute `{} + {}`, which would overflow", const 2_i32, const 2_i32) -> [success: bb1, unwind continue];
}
bb1: {
- _1 = move (_2.0: i32);
+ _1 = const 4_i32;
StorageLive(_3);
StorageLive(_4);
_4 = [const 0_i32, const 1_i32, const 2_i32, const 3_i32, const 4_i32, const 5_i32];
StorageLive(_5);
_5 = const 3_usize;
_6 = const 6_usize;
- _7 = Lt(copy _5, copy _6);
- assert(move _7, "index out of bounds: the length is {} but the index is {}", move _6, copy _5) -> [success: bb2, unwind continue];
+ _7 = const true;
+ assert(const true, "index out of bounds: the length is {} but the index is {}", const 6_usize, const 3_usize) -> [success: bb2, unwind continue];
}
bb2: {
- _3 = copy _4[_5];
+ _3 = const 3_i32;
StorageDead(_5);
StorageDead(_4);
StorageLive(_8);
StorageLive(_9);
_9 = const 42_u32;
- _8 = copy _9;
+ _8 = const 42_u32;
StorageDead(_9);
StorageDead(_8);
StorageDead(_3);
StorageDead(_1);
return;
}
}
+
+ ALLOC0 (size: 8, align: 4) { .. }