about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm
diff options
context:
space:
mode:
authorliudingming <liudingming@bytedance.com>2021-08-28 14:45:24 +0800
committerliudingming <liudingming@bytedance.com>2021-08-28 15:11:46 +0800
commitbf2f6656bca22c86a1f75efda468a8560c6a43b8 (patch)
tree88746f86df73e68b7fc1614c084d7cea01c7eba4 /compiler/rustc_codegen_llvm
parentac50a53359328a5d7f2f558833e63d59d372e4f7 (diff)
downloadrust-bf2f6656bca22c86a1f75efda468a8560c6a43b8.tar.gz
rust-bf2f6656bca22c86a1f75efda468a8560c6a43b8.zip
Revert machine outliner disabling on LLVM 13
Diffstat (limited to 'compiler/rustc_codegen_llvm')
-rw-r--r--compiler/rustc_codegen_llvm/src/llvm_util.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/compiler/rustc_codegen_llvm/src/llvm_util.rs b/compiler/rustc_codegen_llvm/src/llvm_util.rs
index 0ca51bd2883..3b64ec1a991 100644
--- a/compiler/rustc_codegen_llvm/src/llvm_util.rs
+++ b/compiler/rustc_codegen_llvm/src/llvm_util.rs
@@ -89,13 +89,14 @@ unsafe fn configure_llvm(sess: &Session) {
             add("-generate-arange-section", false);
         }
 
-        // FIXME(nagisa): disable the machine outliner by default in LLVM versions 11, where it was
-        // introduced and up.
+        // Disable the machine outliner by default in LLVM versions 11 and LLVM
+        // version 12, where it leads to miscompilation.
         //
-        // This should remain in place until https://reviews.llvm.org/D103167 is fixed. If LLVM
-        // has been upgraded since, consider adjusting the version check below to contain an upper
-        // bound.
-        if llvm_util::get_version() >= (11, 0, 0) {
+        // Ref:
+        // - https://github.com/rust-lang/rust/issues/85351
+        // - https://reviews.llvm.org/D103167
+        let llvm_version = llvm_util::get_version();
+        if llvm_version >= (11, 0, 0) && llvm_version < (13, 0, 0) {
             add("-enable-machine-outliner=never", false);
         }