Skip to content

aarch64: Use CASP instead of LDXP/STXP for load if available#20

Merged
bors[bot] merged 1 commit into
mainfrom
casp
Aug 3, 2022
Merged

aarch64: Use CASP instead of LDXP/STXP for load if available#20
bors[bot] merged 1 commit into
mainfrom
casp

Conversation

@taiki-e
Copy link
Copy Markdown
Owner

@taiki-e taiki-e commented Jul 27, 2022

See llvm/llvm-project#55199 for the motivation.

In CAS we have already done this; in RMW and store we still use LDXP/STXP even if LSE is available because the performance benefits do not seem clear yet.

@taiki-e taiki-e added the O-arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state label Jul 27, 2022
@taiki-e
Copy link
Copy Markdown
Owner Author

taiki-e commented Jul 27, 2022

Ah, it seems that there is the (unreviewed) similar patch in LLVM (https://reviews.llvm.org/D110069)

@taiki-e taiki-e force-pushed the casp branch 4 times, most recently from cbad42c to 5712ce5 Compare August 3, 2022 15:17
@taiki-e taiki-e changed the title aarch64: Use CASP instead of LDXP/STXP for load/store/RMW if available aarch64: Use CASP instead of LDXP/STXP for load if available Aug 3, 2022
@taiki-e
Copy link
Copy Markdown
Owner Author

taiki-e commented Aug 3, 2022

This improves load performance but does not seem to improve RMW and store performance (on AWS Graviton2).

https://cirrus-ci.com/task/5305441004552192
https://cirrus-ci.com/task/5831426640707584

@taiki-e
Copy link
Copy Markdown
Owner Author

taiki-e commented Aug 3, 2022

bors r+

@bors
Copy link
Copy Markdown
Contributor

bors Bot commented Aug 3, 2022

taiki-e added a commit to taiki-e/atomic-maybe-uninit that referenced this pull request Aug 3, 2022
@bors bors Bot merged commit 50b42f6 into main Aug 3, 2022
@bors bors Bot deleted the casp branch August 3, 2022 17:44
bors Bot added a commit that referenced this pull request Feb 5, 2023
70: aarch64: Use CASP instead of LDXP/STXP for store/RMW if available r=taiki-e a=taiki-e

Follow-up #20

In #20, we postponed this (#20 (comment)), but LLVM 16+ adopted this (llvm/llvm-project@10d34f5), so we'll follow LLVM's behavior.

Co-authored-by: Taiki Endo <te316e89@gmail.com>
bors Bot added a commit that referenced this pull request Feb 5, 2023
70: aarch64: Use CASP instead of LDXP/STXP for store/RMW if available r=taiki-e a=taiki-e

Follow-up #20

In #20, we postponed this (#20 (comment)), but LLVM 16+ adopted this (llvm/llvm-project@10d34f5), so we'll follow LLVM's behavior.

Co-authored-by: Taiki Endo <te316e89@gmail.com>
bors Bot added a commit that referenced this pull request Feb 6, 2023
70: aarch64: Use CASP instead of LDXP/STXP for store/RMW if available r=taiki-e a=taiki-e

Follow-up #20

In #20, we postponed this (#20 (comment)), but LLVM 16+ adopted this (llvm/llvm-project@10d34f5), so we'll follow LLVM's behavior.

Co-authored-by: Taiki Endo <te316e89@gmail.com>
@taiki-e taiki-e added O-aarch64 Target: Armv8-A, Armv8-R, or later processors in AArch64 mode and removed O-arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state labels Sep 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

O-aarch64 Target: Armv8-A, Armv8-R, or later processors in AArch64 mode

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant