about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev+love@gmail.com>2023-01-10 08:05:33 +0900
committerGitHub <noreply@github.com>2023-01-10 08:05:33 +0900
commit5773e8baf017956849f821d5c85837ca1162b4ae (patch)
tree43dd0d1a10081cef97334196ff1b70c312bf36f2
parent002eccc7527c07a0aa89d58d5ef3c981f667b3f4 (diff)
parent11331b1030fba551df4c7fc2babd44496040030f (diff)
downloadrust-5773e8baf017956849f821d5c85837ca1162b4ae.tar.gz
rust-5773e8baf017956849f821d5c85837ca1162b4ae.zip
Rollup merge of #105708 - tomerze:enable-atomic-cas-bpf, r=nagisa
Enable atomic cas for bpf targets

It seems like LLVM now supports it.

https://reviews.llvm.org/D72184 - the PR in LLVM
-rw-r--r--compiler/rustc_target/src/spec/bpf_base.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_target/src/spec/bpf_base.rs b/compiler/rustc_target/src/spec/bpf_base.rs
index baf36587147..2b00cda44b5 100644
--- a/compiler/rustc_target/src/spec/bpf_base.rs
+++ b/compiler/rustc_target/src/spec/bpf_base.rs
@@ -6,7 +6,7 @@ pub fn opts(endian: Endian) -> TargetOptions {
         allow_asm: true,
         endian,
         linker_flavor: LinkerFlavor::Bpf,
-        atomic_cas: false,
+        atomic_cas: true,
         dynamic_linking: true,
         no_builtins: true,
         panic_strategy: PanicStrategy::Abort,
@@ -19,6 +19,10 @@ pub fn opts(endian: Endian) -> TargetOptions {
         obj_is_bitcode: true,
         requires_lto: false,
         singlethread: true,
+        // When targeting the `v3` cpu in llvm, 32-bit atomics are also supported.
+        // But making this value change based on the target cpu can be mostly confusing
+        // and would require a bit of a refactor.
+        min_atomic_width: Some(64),
         max_atomic_width: Some(64),
         ..Default::default()
     }