about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBen Kimock <kimockb@gmail.com>2023-10-29 13:20:51 -0400
committerBen Kimock <kimockb@gmail.com>2023-10-29 13:20:51 -0400
commite53b18f033b114829d7e47b0aac7c8477b59d5e0 (patch)
tree78412708c8050eb16a707567826242d54e95a983
parentbbcc1691a4646a6d2ebb2189bdff5b878407fbe6 (diff)
downloadrust-e53b18f033b114829d7e47b0aac7c8477b59d5e0.tar.gz
rust-e53b18f033b114829d7e47b0aac7c8477b59d5e0.zip
Enable cross-crate-inlining when MIR inlining is enabled
-rw-r--r--compiler/rustc_mir_transform/src/cross_crate_inline.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler/rustc_mir_transform/src/cross_crate_inline.rs b/compiler/rustc_mir_transform/src/cross_crate_inline.rs
index 24d081f2ac9..4d0e261ed1f 100644
--- a/compiler/rustc_mir_transform/src/cross_crate_inline.rs
+++ b/compiler/rustc_mir_transform/src/cross_crate_inline.rs
@@ -1,3 +1,5 @@
+use crate::inline;
+use crate::pass_manager as pm;
 use rustc_attr::InlineAttr;
 use rustc_hir::def::DefKind;
 use rustc_hir::def_id::LocalDefId;
@@ -40,8 +42,11 @@ fn cross_crate_inlinable(tcx: TyCtxt<'_>, def_id: LocalDefId) -> bool {
         return false;
     }
 
-    // Don't do any inference unless optimizations are enabled.
-    if matches!(tcx.sess.opts.optimize, OptLevel::No) {
+    // Don't do any inference if codegen optimizations are disabled and also MIR inlining is not
+    // enabled. This ensures that we do inference even if someone only passes -Zinline-mir,
+    // which is less confusing than having to also enable -Copt-level=1.
+    if matches!(tcx.sess.opts.optimize, OptLevel::No) && !pm::should_run_pass(tcx, &inline::Inline)
+    {
         return false;
     }