rust/tests/mir-opt/gvn_ptr_eq_with_constant.main.GVN.diff

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

69 lines
2.2 KiB
Diff
Raw Normal View History

- // MIR for `main` before GVN
+ // MIR for `main` after GVN
fn main() -> () {
let mut _0: ();
let _1: bool;
let mut _2: *mut u8;
scope 1 (inlined dangling_mut::<u8>) {
scope 2 (inlined NonNull::<u8>::dangling) {
let mut _3: std::num::NonZero<usize>;
scope 3 {
scope 5 (inlined std::ptr::Alignment::as_nonzero) {
}
scope 6 (inlined NonNull::<u8>::without_provenance) {
scope 7 {
}
scope 8 (inlined NonZero::<usize>::get) {
}
scope 9 (inlined std::ptr::without_provenance::<u8>) {
scope 10 (inlined without_provenance_mut::<u8>) {
}
}
}
}
scope 4 (inlined std::ptr::Alignment::of::<u8>) {
}
}
scope 11 (inlined NonNull::<u8>::as_ptr) {
}
}
scope 12 (inlined Foo::<u8>::cmp_ptr) {
let mut _4: *const u8;
let mut _5: *mut u8;
let mut _6: *const u8;
scope 13 (inlined std::ptr::eq::<u8>) {
}
}
bb0: {
StorageLive(_1);
StorageLive(_2);
StorageLive(_3);
- _3 = const std::ptr::Alignment::of::<u8>::{constant#0} as std::num::NonZero<usize> (Transmute);
- _2 = copy _3 as *mut u8 (Transmute);
+ _3 = const NonZero::<usize>(core::num::niche_types::NonZeroUsizeInner(1_usize));
+ _2 = const {0x1 as *mut u8};
StorageDead(_3);
StorageLive(_4);
StorageLive(_5);
- _5 = copy _2;
- _4 = copy _2 as *const u8 (PtrToPtr);
+ _5 = const {0x1 as *mut u8};
+ _4 = const {0x1 as *const u8};
StorageDead(_5);
StorageLive(_6);
- _6 = const Foo::<u8>::SENTINEL as *const u8 (PtrToPtr);
- _1 = Eq(copy _4, copy _6);
+ _6 = const {0x1 as *const u8};
+ _1 = const true;
StorageDead(_6);
StorageDead(_4);
StorageDead(_2);
StorageDead(_1);
_0 = const ();
return;
}
}