rust/tests/mir-opt/gvn.casts_before_aggregate_...

61 lines
1.6 KiB
Diff

- // MIR for `casts_before_aggregate_raw_ptr` before GVN
+ // MIR for `casts_before_aggregate_raw_ptr` after GVN
fn casts_before_aggregate_raw_ptr(_1: *const u32) -> *const [u8] {
debug x => _1;
let mut _0: *const [u8];
let _2: *const [u8; 4];
let mut _3: *const u32;
let mut _5: *const [u8; 4];
let mut _7: *const u8;
let mut _8: *const ();
scope 1 {
debug x => _2;
let _4: *const u8;
scope 2 {
debug x => _4;
let _6: *const ();
scope 3 {
debug x => _6;
}
}
}
bb0: {
- StorageLive(_2);
+ nop;
StorageLive(_3);
_3 = copy _1;
- _2 = move _3 as *const [u8; 4] (PtrToPtr);
+ _2 = copy _1 as *const [u8; 4] (PtrToPtr);
StorageDead(_3);
- StorageLive(_4);
+ nop;
StorageLive(_5);
_5 = copy _2;
- _4 = move _5 as *const u8 (PtrToPtr);
+ _4 = copy _1 as *const u8 (PtrToPtr);
StorageDead(_5);
- StorageLive(_6);
+ nop;
StorageLive(_7);
_7 = copy _4;
- _6 = move _7 as *const () (PtrToPtr);
+ _6 = copy _1 as *const () (PtrToPtr);
StorageDead(_7);
StorageLive(_8);
_8 = copy _6;
- _0 = *const [u8] from (move _8, const 4_usize);
+ _0 = *const [u8] from (copy _1, const 4_usize);
StorageDead(_8);
- StorageDead(_6);
- StorageDead(_4);
- StorageDead(_2);
+ nop;
+ nop;
+ nop;
return;
}
}