rust/tests/mir-opt/const_prop/aggregate.foo.GVN.panic-abo...

58 lines
1.4 KiB
Diff

- // MIR for `foo` before GVN
+ // MIR for `foo` after GVN
fn foo(_1: u8) -> () {
debug x => _1;
let mut _0: ();
let _2: i32;
let mut _3: i32;
let mut _4: (i32, u8);
let mut _5: u8;
let mut _7: i32;
let mut _8: (u8, i32);
let mut _9: u8;
scope 1 {
debug first => _2;
let _6: i32;
scope 2 {
debug second => _6;
}
}
bb0: {
StorageLive(_2);
StorageLive(_3);
StorageLive(_4);
StorageLive(_5);
_5 = copy _1;
- _4 = (const 0_i32, move _5);
+ _4 = (const 0_i32, copy _1);
StorageDead(_5);
- _3 = copy (_4.0: i32);
- _2 = Add(move _3, const 1_i32);
+ _3 = const 0_i32;
+ _2 = const 1_i32;
StorageDead(_3);
StorageDead(_4);
StorageLive(_6);
StorageLive(_7);
StorageLive(_8);
StorageLive(_9);
_9 = copy _1;
- _8 = (move _9, const 1_i32);
+ _8 = (copy _1, const 1_i32);
StorageDead(_9);
- _7 = copy (_8.1: i32);
- _6 = Add(move _7, const 2_i32);
+ _7 = const 1_i32;
+ _6 = const 3_i32;
StorageDead(_7);
StorageDead(_8);
_0 = const ();
StorageDead(_6);
StorageDead(_2);
return;
}
}