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

<atomic>: use __iso_volatile_store64 on x86 if it is available #651

Closed
AlexGuteniev opened this issue Mar 28, 2020 · 0 comments · Fixed by #694
Closed

<atomic>: use __iso_volatile_store64 on x86 if it is available #651

AlexGuteniev opened this issue Mar 28, 2020 · 0 comments · Fixed by #694
Labels
fixed Something works now, yay! performance Must go faster

Comments

@AlexGuteniev
Copy link
Contributor

Currently 64-bit atomic<T> on x86 uses _InterlockedCompareExchange64 for any store operation, even for memory_order_relaxed.

Whereas for load it uses __iso_volatile_load64 intrinsic.

__iso_volatile_store64 appears to be working on x86. Though it was blamed to cause ICE in revision bb746ac.

Clarify the status of __iso_volatile_store64 on x86 and use it if it is possible.

@StephanTLavavej StephanTLavavej added the performance Must go faster label Apr 2, 2020
AlexGuteniev added a commit to AlexGuteniev/STL that referenced this issue Apr 8, 2020
without complier barrier for memory_order_relaxed,
with complier barrier for memory_order_release,
other orders unchanged.
AlexGuteniev added a commit to AlexGuteniev/STL that referenced this issue Apr 16, 2020
@cbezault cbezault linked a pull request Jun 24, 2020 that will close this issue
@cbezault cbezault linked a pull request Jun 24, 2020 that will close this issue
@BillyONeal BillyONeal added the fixed Something works now, yay! label Jun 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fixed Something works now, yay! performance Must go faster
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants