about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src/llvm_util.rs
diff options
context:
space:
mode:
authorAugie Fackler <augie@google.com>2024-04-17 15:05:29 -0400
committerAugie Fackler <augie@google.com>2024-04-17 16:15:24 -0400
commit22b704bac4779d773cf9e641c0b0c3e17352dc3a (patch)
tree11aca638f7aac38fb30025d3137022d0c5058ea4 /compiler/rustc_codegen_llvm/src/llvm_util.rs
parent00ed4edb44ccc76d8cc992ef9f9f4634ea6d0e82 (diff)
downloadrust-22b704bac4779d773cf9e641c0b0c3e17352dc3a.tar.gz
rust-22b704bac4779d773cf9e641c0b0c3e17352dc3a.zip
llvm: update riscv target feature to match LLVM 19
In llvm/llvm-project@9067070d91e9d8cdd8509ffa56a076f08a3d7281 they ended
up largely reverting
llvm/llvm-project@e81796671890b59c110f8e41adc7ca26f8484d20. This means
the change we did in
rust-lang/rust@b378059e6b2573c5356423fa31d184a89a3b6029 is now only
corrct for LLVM 18...so we have to adjust again.

@rustbot label: +llvm-main
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/llvm_util.rs')
-rw-r--r--compiler/rustc_codegen_llvm/src/llvm_util.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/rustc_codegen_llvm/src/llvm_util.rs b/compiler/rustc_codegen_llvm/src/llvm_util.rs
index c9e62e504ae..5552b381025 100644
--- a/compiler/rustc_codegen_llvm/src/llvm_util.rs
+++ b/compiler/rustc_codegen_llvm/src/llvm_util.rs
@@ -270,9 +270,10 @@ pub fn to_llvm_features<'a>(sess: &Session, s: &'a str) -> LLVMFeature<'a> {
             "sve2-bitperm",
             TargetFeatureFoldStrength::EnableOnly("neon"),
         ),
-        // The unaligned-scalar-mem feature was renamed to fast-unaligned-access.
-        ("riscv32" | "riscv64", "fast-unaligned-access") if get_version().0 <= 17 => {
-            LLVMFeature::new("unaligned-scalar-mem")
+        // In LLVM 18, `unaligned-scalar-mem` was merged with `unaligned-vector-mem` into a single feature called
+        // `fast-unaligned-access`. In LLVM 19, it was split back out.
+        ("riscv32" | "riscv64", "unaligned-scalar-mem") if get_version().0 == 18 => {
+            LLVMFeature::new("fast-unaligned-access")
         }
         // For LLVM 18, enable the evex512 target feature if a avx512 target feature is enabled.
         ("x86", s) if get_version().0 >= 18 && s.starts_with("avx512") => {