diff --git a/compiler/rustc_codegen_llvm/src/llvm_util.rs b/compiler/rustc_codegen_llvm/src/llvm_util.rs index 53571e8cb32..863a347e121 100644 --- a/compiler/rustc_codegen_llvm/src/llvm_util.rs +++ b/compiler/rustc_codegen_llvm/src/llvm_util.rs @@ -119,11 +119,11 @@ fn llvm_arg_to_arg_name(full_arg: &str) -> &str { llvm::LLVMInitializePasses(); - let use_new_llvm_pm_plugin_register = - sess.opts.debugging_opts.new_llvm_pass_manager.unwrap_or(false); - - // Use the legacy pm registration if the new_llvm_pass_manager option isn't explicitly enabled - if !use_new_llvm_pm_plugin_register { + // Use the legacy plugin registration if we don't use the new pass manager + if !should_use_new_llvm_pass_manager( + &sess.opts.debugging_opts.new_llvm_pass_manager, + &sess.target.arch, + ) { // Register LLVM plugins by loading them into the compiler process. for plugin in &sess.opts.debugging_opts.llvm_plugins { let lib = Library::new(plugin).unwrap_or_else(|e| bug!("couldn't load plugin: {}", e)); diff --git a/compiler/rustc_codegen_ssa/src/back/write.rs b/compiler/rustc_codegen_ssa/src/back/write.rs index d23fe621539..0281fd929c5 100644 --- a/compiler/rustc_codegen_ssa/src/back/write.rs +++ b/compiler/rustc_codegen_ssa/src/back/write.rs @@ -261,11 +261,7 @@ macro_rules! if_regular { inline_threshold: sess.opts.cg.inline_threshold, new_llvm_pass_manager: sess.opts.debugging_opts.new_llvm_pass_manager, emit_lifetime_markers: sess.emit_lifetime_markers(), - llvm_plugins: if sess.opts.debugging_opts.new_llvm_pass_manager.unwrap_or(false) { - if_regular!(sess.opts.debugging_opts.llvm_plugins.clone(), vec![]) - } else { - vec![] - }, + llvm_plugins: if_regular!(sess.opts.debugging_opts.llvm_plugins.clone(), vec![]), } }