Load new pass manager plugins only if the new pm is actually used

This commit is contained in:
Axel Cohen 2021-12-20 14:50:03 +01:00
parent 052961b013
commit f431df0d7f
2 changed files with 6 additions and 10 deletions

View File

@ -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));

View File

@ -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![]),
}
}