Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SOL] add support for (pseudo) atomics to SBF #23

Merged

Conversation

alessandrod
Copy link
Collaborator

Lower atomic operations to their regular non-atomic equivalents. Lowering for all operations except atomic fence is done at DAG legalization time. Fences are removed at instruction emission time. The custom lowering is done only for the SBF subtarget, BPF atomics still work (and tests still pass).

This will allow us to remove all the atomic stubs we have behind #[cfg(target_arch = "sbf")] in rustc, and implements some things we hadn't stubbed yet, making all atomics test pass.

Lower atomic operations to their regular non-atomic equivalents. Lowering for
all operations except atomic fence is done at DAG legalization time. Fences are
removed at instruction emission time.
@alessandrod alessandrod merged commit 421b949 into anza-xyz:solana-rustc/13.0-2021-08-08 Jan 3, 2022
alessandrod added a commit to alessandrod/rust that referenced this pull request Jan 3, 2022
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
alessandrod added a commit to anza-xyz/rust that referenced this pull request Jan 3, 2022
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
dmakarov pushed a commit to dmakarov/llvm-project that referenced this pull request Feb 28, 2022
Lower atomic operations to their regular non-atomic equivalents. Lowering for
all operations except atomic fence is done at DAG legalization time. Fences are
removed at instruction emission time.
dmakarov pushed a commit to dmakarov/rust that referenced this pull request Mar 22, 2022
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
dmakarov pushed a commit to dmakarov/llvm-project that referenced this pull request Jul 18, 2022
Lower atomic operations to their regular non-atomic equivalents. Lowering for
all operations except atomic fence is done at DAG legalization time. Fences are
removed at instruction emission time.
dmakarov pushed a commit to dmakarov/rust that referenced this pull request Jul 27, 2022
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
dmakarov pushed a commit to dmakarov/llvm-project that referenced this pull request Nov 16, 2022
Lower atomic operations to their regular non-atomic equivalents. Lowering for
all operations except atomic fence is done at DAG legalization time. Fences are
removed at instruction emission time.
dmakarov pushed a commit to dmakarov/rust that referenced this pull request Dec 6, 2022
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
dmakarov pushed a commit to dmakarov/llvm-project that referenced this pull request Dec 12, 2022
Lower atomic operations to their regular non-atomic equivalents. Lowering for
all operations except atomic fence is done at DAG legalization time. Fences are
removed at instruction emission time.
dmakarov pushed a commit to dmakarov/llvm-project that referenced this pull request Mar 17, 2023
Lower atomic operations to their regular non-atomic equivalents. Lowering for
all operations except atomic fence is done at DAG legalization time. Fences are
removed at instruction emission time.
dmakarov pushed a commit to dmakarov/rust that referenced this pull request Mar 18, 2023
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
dmakarov pushed a commit to dmakarov/llvm-project that referenced this pull request Sep 10, 2023
Lower atomic operations to their regular non-atomic equivalents. Lowering for
all operations except atomic fence is done at DAG legalization time. Fences are
removed at instruction emission time.
dmakarov pushed a commit to dmakarov/rust that referenced this pull request Sep 25, 2023
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
LucasSte pushed a commit to LucasSte/llvm-project that referenced this pull request Jan 31, 2024
Lower atomic operations to their regular non-atomic equivalents. Lowering for
all operations except atomic fence is done at DAG legalization time. Fences are
removed at instruction emission time.
LucasSte pushed a commit to LucasSte/rust that referenced this pull request Feb 1, 2024
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
LucasSte pushed a commit that referenced this pull request Feb 16, 2024
Lower atomic operations to their regular non-atomic equivalents. Lowering for
all operations except atomic fence is done at DAG legalization time. Fences are
removed at instruction emission time.
LucasSte pushed a commit to LucasSte/rust that referenced this pull request Feb 19, 2024
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
LucasSte pushed a commit to anza-xyz/rust that referenced this pull request Feb 20, 2024
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
LucasSte pushed a commit to LucasSte/llvm-project that referenced this pull request Jun 28, 2024
Lower atomic operations to their regular non-atomic equivalents. Lowering for
all operations except atomic fence is done at DAG legalization time. Fences are
removed at instruction emission time.
LucasSte pushed a commit to LucasSte/rust that referenced this pull request Jul 10, 2024
(Pseudo) atomics are now implemented in SBF
anza-xyz/llvm-project#23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants