about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-06-11 18:05:34 +0200
committerGitHub <noreply@github.com>2022-06-11 18:05:34 +0200
commitb3d8e71cf16bd5abc61f84101121911cbbc0bc89 (patch)
treeb8790478c7177146731738322a8c16e403b7bda6 /compiler/rustc_codegen_llvm
parent39de4e4b6f24d5b93f84d702a3dd19b1db34d912 (diff)
parent6738434de3e4dacedeb330a5cf878e0a196be864 (diff)
downloadrust-b3d8e71cf16bd5abc61f84101121911cbbc0bc89.tar.gz
rust-b3d8e71cf16bd5abc61f84101121911cbbc0bc89.zip
Rollup merge of #97969 - inglorion:prelinkpasses, r=nikic
Make -Cpasses= only apply to pre-link optimization

This change causes passes specified in -Cpasses= to be applied
only during pre-link optimization, not during LTO. This avoids
such passes running multiple times, which they may not be
designed for.

Fixes https://github.com/rust-lang/rust/issues/97713
Diffstat (limited to 'compiler/rustc_codegen_llvm')
-rw-r--r--compiler/rustc_codegen_llvm/src/back/write.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_llvm/src/back/write.rs b/compiler/rustc_codegen_llvm/src/back/write.rs
index 50f8949c897..3864db9ffc1 100644
--- a/compiler/rustc_codegen_llvm/src/back/write.rs
+++ b/compiler/rustc_codegen_llvm/src/back/write.rs
@@ -463,7 +463,7 @@ pub(crate) unsafe fn optimize_with_new_llvm_pass_manager(
     let llvm_selfprofiler =
         llvm_profiler.as_mut().map(|s| s as *mut _ as *mut c_void).unwrap_or(std::ptr::null_mut());
 
-    let extra_passes = config.passes.join(",");
+    let extra_passes = if !is_lto { config.passes.join(",") } else { "".to_string() };
 
     let llvm_plugins = config.llvm_plugins.join(",");