about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-06-30 08:16:05 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-09-06 14:18:32 +0000
commit088e03fe224e4e7adf3fe1c3d5365a699418b7d9 (patch)
tree5a562e0ea581597f0105f59ff525cb12c92df0e5
parentb8169a6da07f123cda26b5903e3d6032dd00efb9 (diff)
downloadrust-088e03fe224e4e7adf3fe1c3d5365a699418b7d9.tar.gz
rust-088e03fe224e4e7adf3fe1c3d5365a699418b7d9.zip
Lower the assume intrinsic to a MIR statement
-rw-r--r--src/base.rs2
-rw-r--r--src/constant.rs1
-rw-r--r--src/intrinsics/mod.rs3
3 files changed, 3 insertions, 3 deletions
diff --git a/src/base.rs b/src/base.rs
index c412e451a03..1f49ead93a3 100644
--- a/src/base.rs
+++ b/src/base.rs
@@ -791,6 +791,8 @@ fn codegen_stmt<'tcx>(
         | StatementKind::Nop
         | StatementKind::FakeRead(..)
         | StatementKind::Retag { .. }
+        // We ignore `assume` intrinsics, they are only useful for optimizations
+        | StatementKind::Assume(..)
         | StatementKind::AscribeUserType(..) => {}
 
         StatementKind::Coverage { .. } => fx.tcx.sess.fatal("-Zcoverage is unimplemented"),
diff --git a/src/constant.rs b/src/constant.rs
index 9224f499339..f75de9096f3 100644
--- a/src/constant.rs
+++ b/src/constant.rs
@@ -540,6 +540,7 @@ pub(crate) fn mir_operand_get_const_val<'tcx>(
                             return None;
                         } // conservative handling
                         StatementKind::Assign(_)
+                        | StatementKind::Assume(_)
                         | StatementKind::FakeRead(_)
                         | StatementKind::SetDiscriminant { .. }
                         | StatementKind::Deinit(_)
diff --git a/src/intrinsics/mod.rs b/src/intrinsics/mod.rs
index 39e9e784a47..0cd9332a58b 100644
--- a/src/intrinsics/mod.rs
+++ b/src/intrinsics/mod.rs
@@ -357,9 +357,6 @@ fn codegen_regular_intrinsic_call<'tcx>(
     let usize_layout = fx.layout_of(fx.tcx.types.usize);
 
     match intrinsic {
-        sym::assume => {
-            intrinsic_args!(fx, args => (_a); intrinsic);
-        }
         sym::likely | sym::unlikely => {
             intrinsic_args!(fx, args => (a); intrinsic);