From fefb0dba824d7a98bbceba63e434279ff7377a45 Mon Sep 17 00:00:00 2001 From: dianqk Date: Mon, 24 Mar 2025 16:55:24 +0800 Subject: [PATCH] Partially revert "Do not unify dereferences in GVN." This reverts commit 917dd826286bd85e26310e4db4a125d4038c277e. --- compiler/rustc_mir_transform/src/gvn.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/compiler/rustc_mir_transform/src/gvn.rs b/compiler/rustc_mir_transform/src/gvn.rs index 944c21eab407..a93fdff5817c 100644 --- a/compiler/rustc_mir_transform/src/gvn.rs +++ b/compiler/rustc_mir_transform/src/gvn.rs @@ -642,9 +642,7 @@ impl<'body, 'tcx> VnState<'body, 'tcx> { let proj = match proj { ProjectionElem::Deref => { let ty = place.ty(self.local_decls, self.tcx).ty; - // unsound: https://github.com/rust-lang/rust/issues/130853 - if self.tcx.sess.opts.unstable_opts.unsound_mir_opts - && let Some(Mutability::Not) = ty.ref_mutability() + if let Some(Mutability::Not) = ty.ref_mutability() && let Some(pointee_ty) = ty.builtin_deref(true) && pointee_ty.is_freeze(self.tcx, self.typing_env()) {