Enable outline-atomics by default on AArch64 FreeBSD#149633
Enable outline-atomics by default on AArch64 FreeBSD#149633bors merged 1 commit intorust-lang:mainfrom
outline-atomics by default on AArch64 FreeBSD#149633Conversation
fbeeee2 to
baebc7a
Compare
|
This will make FreeBSD act the same as most other targets after #144938, which also has some more details (as does the Zulip discussion). Cc target maintainers @asomers @MikaelUrankar, I split this off in case you would like to verify that this works since Clang doesn't have this enabled. Basically that means running some atomic ops with a debugger and making sure it uses the LSE fast path (details). Might be worth pinging some FreeBSD arm maintainers even if they don't work on Rust, in case they want to verify this or consider doing the same in Clang? @bors2 try |
|
These commits modify compiler targets. |
|
r? @ibraheemdev rustbot has assigned @ibraheemdev. Use |
Enable `outline-atomics` by default on AArch64 FreeBSD try-job: dist-x86_64-freebsd
This comment has been minimized.
This comment has been minimized.
This comment is not true. I commited this 3 months ago. |
Many aarch64 targets without LSE in the baseline enable the `outline-atomics` feature, which uses runtime detection of LSE for its faster atomic ops. This provides nontrivial performance improvements on most hardware from the past decade, at a small cost to anything pre-LSE. This matches what Clang does [1]. [1]: llvm/llvm-project@e24f901
baebc7a to
383053e
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
Thanks for the link. This was split from #144938, the commit message predates the LLVM commit. Any objections here then? |
|
r? @davidtwco as you handled the others |
|
@bors r+ rollup |
…r=davidtwco Enable `outline-atomics` by default on AArch64 FreeBSD Many aarch64 targets without LSE in the baseline enable the `outline-atomics` feature, which uses runtime detection of LSE for its faster atomic ops. This provides nontrivial performance improvements on most hardware from the past decade, at a small cost to anything pre-LSE. This matches what Clang does [1]. Context: rust-lang#144938 [1]: llvm/llvm-project@e24f901 try-job: dist-x86_64-freebsd
…r=davidtwco Enable `outline-atomics` by default on AArch64 FreeBSD Many aarch64 targets without LSE in the baseline enable the `outline-atomics` feature, which uses runtime detection of LSE for its faster atomic ops. This provides nontrivial performance improvements on most hardware from the past decade, at a small cost to anything pre-LSE. This matches what Clang does [1]. Context: rust-lang#144938 [1]: llvm/llvm-project@e24f901 try-job: dist-x86_64-freebsd
…r=davidtwco Enable `outline-atomics` by default on AArch64 FreeBSD Many aarch64 targets without LSE in the baseline enable the `outline-atomics` feature, which uses runtime detection of LSE for its faster atomic ops. This provides nontrivial performance improvements on most hardware from the past decade, at a small cost to anything pre-LSE. This matches what Clang does [1]. Context: rust-lang#144938 [1]: llvm/llvm-project@e24f901 try-job: dist-x86_64-freebsd
Rollup of 7 pull requests Successful merges: - #149633 (Enable `outline-atomics` by default on AArch64 FreeBSD) - #149788 (Move shared offload globals and define per-kernel globals once) - #149989 (Improve filenames encoding and misc) - #150012 (rustc_target: Add `efiapi` ABI support for LoongArch) - #150116 (layout: Store inverse memory index in `FieldsShape::Arbitrary`) - #150151 (Destabilise `target-spec-json`) - #150159 (Split eii macro expansion code) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 6 pull requests Successful merges: - #149633 (Enable `outline-atomics` by default on AArch64 FreeBSD) - #149788 (Move shared offload globals and define per-kernel globals once) - #149989 (Improve filenames encoding and misc) - #150012 (rustc_target: Add `efiapi` ABI support for LoongArch) - #150116 (layout: Store inverse memory index in `FieldsShape::Arbitrary`) - #150159 (Split eii macro expansion code) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of #149633 - tgross35:freebsd-outline-atomics, r=davidtwco Enable `outline-atomics` by default on AArch64 FreeBSD Many aarch64 targets without LSE in the baseline enable the `outline-atomics` feature, which uses runtime detection of LSE for its faster atomic ops. This provides nontrivial performance improvements on most hardware from the past decade, at a small cost to anything pre-LSE. This matches what Clang does [1]. Context: #144938 [1]: llvm/llvm-project@e24f901 try-job: dist-x86_64-freebsd
Rollup of 6 pull requests Successful merges: - rust-lang/rust#149633 (Enable `outline-atomics` by default on AArch64 FreeBSD) - rust-lang/rust#149788 (Move shared offload globals and define per-kernel globals once) - rust-lang/rust#149989 (Improve filenames encoding and misc) - rust-lang/rust#150012 (rustc_target: Add `efiapi` ABI support for LoongArch) - rust-lang/rust#150116 (layout: Store inverse memory index in `FieldsShape::Arbitrary`) - rust-lang/rust#150159 (Split eii macro expansion code) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 6 pull requests Successful merges: - rust-lang/rust#149633 (Enable `outline-atomics` by default on AArch64 FreeBSD) - rust-lang/rust#149788 (Move shared offload globals and define per-kernel globals once) - rust-lang/rust#149989 (Improve filenames encoding and misc) - rust-lang/rust#150012 (rustc_target: Add `efiapi` ABI support for LoongArch) - rust-lang/rust#150116 (layout: Store inverse memory index in `FieldsShape::Arbitrary`) - rust-lang/rust#150159 (Split eii macro expansion code) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 6 pull requests Successful merges: - rust-lang/rust#149633 (Enable `outline-atomics` by default on AArch64 FreeBSD) - rust-lang/rust#149788 (Move shared offload globals and define per-kernel globals once) - rust-lang/rust#149989 (Improve filenames encoding and misc) - rust-lang/rust#150012 (rustc_target: Add `efiapi` ABI support for LoongArch) - rust-lang/rust#150116 (layout: Store inverse memory index in `FieldsShape::Arbitrary`) - rust-lang/rust#150159 (Split eii macro expansion code) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 6 pull requests Successful merges: - rust-lang/rust#149633 (Enable `outline-atomics` by default on AArch64 FreeBSD) - rust-lang/rust#149788 (Move shared offload globals and define per-kernel globals once) - rust-lang/rust#149989 (Improve filenames encoding and misc) - rust-lang/rust#150012 (rustc_target: Add `efiapi` ABI support for LoongArch) - rust-lang/rust#150116 (layout: Store inverse memory index in `FieldsShape::Arbitrary`) - rust-lang/rust#150159 (Split eii macro expansion code) r? `@ghost` `@rustbot` modify labels: rollup
…=lqd Revert enabling `outline-atomics` on various platforms Our implementations in `compiler-builtins` do not yet have BTI landing pads, so platforms using a custom-built std with unstable `-Zbranch-protection=bti` may run into issues. This should resolve rust-lang#151486. There is a PR in progress to add BTI support to compiler-builtins [1], after which this can be re-enabled. Linux has had `outline-atomics` enabled for years [2] with no known problems, so it is not changed here. Partially reverts rust-lang#144938 Reverts rust-lang#149633 Zulip discussion: https://rust-lang.zulipchat.com/#narrow/channel/245100-t-compiler.2Fprioritization.2Falerts/topic/.23151486.20Chromium.20hitting.20SIGILL.20crashes.20on.20aarch64.20after.20.231.E2.80.A6/with/571170956 [1]: rust-lang/compiler-builtins#1063 [2]: tgross35@0f9f241
Rollup merge of #151896 - tgross35:revert-outline-atomics, r=lqd Revert enabling `outline-atomics` on various platforms Our implementations in `compiler-builtins` do not yet have BTI landing pads, so platforms using a custom-built std with unstable `-Zbranch-protection=bti` may run into issues. This should resolve #151486. There is a PR in progress to add BTI support to compiler-builtins [1], after which this can be re-enabled. Linux has had `outline-atomics` enabled for years [2] with no known problems, so it is not changed here. Partially reverts #144938 Reverts #149633 Zulip discussion: https://rust-lang.zulipchat.com/#narrow/channel/245100-t-compiler.2Fprioritization.2Falerts/topic/.23151486.20Chromium.20hitting.20SIGILL.20crashes.20on.20aarch64.20after.20.231.E2.80.A6/with/571170956 [1]: rust-lang/compiler-builtins#1063 [2]: tgross35@0f9f241
Many aarch64 targets without LSE in the baseline enable the
outline-atomicsfeature, which uses runtime detection of LSE for itsfaster atomic ops. This provides nontrivial performance improvements on
most hardware from the past decade, at a small cost to anything pre-LSE.
This matches what Clang does 1.
Context: #144938
try-job: dist-x86_64-freebsd