rust/tests/mir-opt/instsimplify/casts.roundtrip.InstSimplify.diff
Scott McMurray 4630d1b23b Ban ArrayToPointer and MutToConstPointer from runtime MIR
Apparently MIR borrowck cares about at least one of these for checking variance.

In runtime MIR, though, there's no need for them as `PtrToPtr` does the same thing.

(Banning them simplifies passes like GVN that no longer need to handle multiple cast possibilities.)
2024-06-19 10:44:01 -07:00

27 lines
668 B
Diff

- // MIR for `roundtrip` before InstSimplify
+ // MIR for `roundtrip` after InstSimplify
fn roundtrip(_1: *const u8) -> *const u8 {
debug x => _1;
let mut _0: *const u8;
let mut _2: *const u8;
let mut _3: *mut u8;
let mut _4: *const u8;
bb0: {
StorageLive(_2);
StorageLive(_3);
StorageLive(_4);
_4 = _1;
_3 = move _4 as *mut u8 (PtrToPtr);
_2 = move _3 as *const u8 (PtrToPtr);
StorageDead(_4);
StorageDead(_3);
- _0 = move _2 as *const u8 (PtrToPtr);
+ _0 = move _2;
StorageDead(_2);
return;
}
}