| // MIR for `main` after GVN |
| |
| fn main() -> () { |
| let mut _0: (); |
| let _1: &[(std::option::Option<i32>, &[&str])]; |
| let mut _2: &&[(std::option::Option<i32>, &[&str])]; |
| |
| bb0: { |
| StorageLive(_1); |
| StorageLive(_2); |
| _2 = const {ALLOC9: &&[(Option<i32>, &[&str])]}; |
| _1 = copy (*_2); |
| StorageDead(_2); |
| StorageDead(_1); |
| _0 = const (); |
| return; |
| } |
| } |
| |
| ALLOC9 (static: FOO, size: 8, align: 4) { |
| ╾ALLOC0<imm>╼ 03 00 00 00 │ ╾──╼.... |
| } |
| |
| ALLOC0 (size: 48, align: 4) { |
| 0x00 │ 00 00 00 00 __ __ __ __ ╾ALLOC1<imm>╼ 00 00 00 00 │ ....░░░░╾──╼.... |
| 0x10 │ 00 00 00 00 __ __ __ __ ╾ALLOC2<imm>╼ 02 00 00 00 │ ....░░░░╾──╼.... |
| 0x20 │ 01 00 00 00 2a 00 00 00 ╾ALLOC3<imm>╼ 03 00 00 00 │ ....*...╾──╼.... |
| } |
| |
| ALLOC1 (size: 0, align: 4) {} |
| |
| ALLOC2 (size: 16, align: 4) { |
| ╾ALLOC4<imm>╼ 03 00 00 00 ╾ALLOC5<imm>╼ 03 00 00 00 │ ╾──╼....╾──╼.... |
| } |
| |
| ALLOC4 (size: 3, align: 1) { |
| 66 6f 6f │ foo |
| } |
| |
| ALLOC5 (size: 3, align: 1) { |
| 62 61 72 │ bar |
| } |
| |
| ALLOC3 (size: 24, align: 4) { |
| 0x00 │ ╾ALLOC6<imm>╼ 03 00 00 00 ╾ALLOC7<imm>╼ 03 00 00 00 │ ╾──╼....╾──╼.... |
| 0x10 │ ╾ALLOC8<imm>╼ 04 00 00 00 │ ╾──╼.... |
| } |
| |
| ALLOC6 (size: 3, align: 1) { |
| 6d 65 68 │ meh |
| } |
| |
| ALLOC7 (size: 3, align: 1) { |
| 6d 6f 70 │ mop |
| } |
| |
| ALLOC8 (size: 4, align: 1) { |
| 6d c3 b6 70 │ m..p |
| } |