diff options
| author | Nikita Popov <npopov@redhat.com> | 2022-03-09 10:00:07 +0100 |
|---|---|---|
| committer | Nikita Popov <npopov@redhat.com> | 2022-03-09 10:00:23 +0100 |
| commit | 0c7d0a19ddb2cca5ccfa3050b1e18a272c083118 (patch) | |
| tree | 585accefd425b5840da00459c7b30ab380a82241 /compiler/rustc_codegen_llvm/src/llvm_util.rs | |
| parent | 8a0045fd5b833ede35196a78a427a9c5adec6f69 (diff) | |
| download | rust-0c7d0a19ddb2cca5ccfa3050b1e18a272c083118.tar.gz rust-0c7d0a19ddb2cca5ccfa3050b1e18a272c083118.zip | |
Use new pass manager on s390x with LLVM 14
The problematic compile-time issue should be resolved with this version.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/llvm_util.rs')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/llvm_util.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/rustc_codegen_llvm/src/llvm_util.rs b/compiler/rustc_codegen_llvm/src/llvm_util.rs index e9d13a4ebaf..4b324740a1f 100644 --- a/compiler/rustc_codegen_llvm/src/llvm_util.rs +++ b/compiler/rustc_codegen_llvm/src/llvm_util.rs @@ -527,8 +527,9 @@ pub(crate) fn should_use_new_llvm_pass_manager(user_opt: &Option<bool>, target_a // The new pass manager is enabled by default for LLVM >= 13. // This matches Clang, which also enables it since Clang 13. - // FIXME: There are some perf issues with the new pass manager - // when targeting s390x, so it is temporarily disabled for that - // arch, see https://github.com/rust-lang/rust/issues/89609 - user_opt.unwrap_or_else(|| target_arch != "s390x" && llvm_util::get_version() >= (13, 0, 0)) + // There are some perf issues with the new pass manager when targeting + // s390x with LLVM 13, so enable the new pass manager only with LLVM 14. + // See https://github.com/rust-lang/rust/issues/89609. + let min_version = if target_arch == "s390x" { 14 } else { 13 }; + user_opt.unwrap_or_else(|| llvm_util::get_version() >= (min_version, 0, 0)) } |
