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

Optimize non-relaxed load/store on pre-v6 ARM Linux/Android #112

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

taiki-e
Copy link
Owner

@taiki-e taiki-e commented Jul 31, 2023

LLVM calls __sync_val_compare_and_swap_N/__sync_lock_test_and_set_N for them, but we can use ldr/str+__kuser_memory_barrier on Linux/Android.

This should also fix the problem that wide seqlock, which uses several acquire loads, is slower than spinlock on these targets. #82 (comment)

@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 31, 2023
@taiki-e taiki-e force-pushed the arm-linux branch 4 times, most recently from 0469e30 to 5b9bc15 Compare August 1, 2023 02:54
@taiki-e taiki-e force-pushed the arm-linux branch 2 times, most recently from 1d4e775 to 1d12abb Compare October 7, 2023 18:50
@taiki-e taiki-e force-pushed the arm-linux branch 2 times, most recently from 83b7d1c to b78d414 Compare January 3, 2024 18:13
@taiki-e taiki-e force-pushed the main branch 4 times, most recently from 5b5ecb8 to c9456c0 Compare March 9, 2024 12:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O-arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant