diff options
| author | Bob Haarman <rust@inglorion.net> | 2022-06-10 11:53:25 -0700 |
|---|---|---|
| committer | Bob Haarman <rust@inglorion.net> | 2022-06-10 13:35:11 -0700 |
| commit | 6738434de3e4dacedeb330a5cf878e0a196be864 (patch) | |
| tree | ff5131cbdb0c68336bbd058e9f7d902a89660b1d /compiler/rustc_codegen_llvm/src | |
| parent | ec55c61305eaf385fc1b93ac9a78284b4d887fe5 (diff) | |
| download | rust-6738434de3e4dacedeb330a5cf878e0a196be864.tar.gz rust-6738434de3e4dacedeb330a5cf878e0a196be864.zip | |
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/src')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/back/write.rs | 2 |
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 99e30531c22..f456408ca3a 100644 --- a/compiler/rustc_codegen_llvm/src/back/write.rs +++ b/compiler/rustc_codegen_llvm/src/back/write.rs @@ -467,7 +467,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(","); |
