Skip to content

Commit 0c7d0a1

Browse files
committed
Use new pass manager on s390x with LLVM 14
The problematic compile-time issue should be resolved with this version.
1 parent 8a0045f commit 0c7d0a1

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

compiler/rustc_codegen_llvm/src/llvm_util.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -527,8 +527,9 @@ pub(crate) fn should_use_new_llvm_pass_manager(user_opt: &Option<bool>, target_a
527527
// The new pass manager is enabled by default for LLVM >= 13.
528528
// This matches Clang, which also enables it since Clang 13.
529529

530-
// FIXME: There are some perf issues with the new pass manager
531-
// when targeting s390x, so it is temporarily disabled for that
532-
// arch, see https://github.com/rust-lang/rust/issues/89609
533-
user_opt.unwrap_or_else(|| target_arch != "s390x" && llvm_util::get_version() >= (13, 0, 0))
530+
// There are some perf issues with the new pass manager when targeting
531+
// s390x with LLVM 13, so enable the new pass manager only with LLVM 14.
532+
// See https://github.com/rust-lang/rust/issues/89609.
533+
let min_version = if target_arch == "s390x" { 14 } else { 13 };
534+
user_opt.unwrap_or_else(|| llvm_util::get_version() >= (min_version, 0, 0))
534535
}

0 commit comments

Comments
 (0)