wasmer
wasmer copied to clipboard
llvm backend should use unordered atomics for load/store to shared memory
iirc WebAssembly requires non-atomic load/store operations to have somewhat sane results when there is a data race, but in llvm data races of non-atomic load/stores are UB. the fix is to use llvm's unordered atomic ordering which is specificly designed for cases like this: https://releases.llvm.org/14.0.0/docs/Atomics.html#unordered
Thanks for opening the issue! We'll take a look on this approach after releasing Wasmer 3.0
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
version 3.0 was released, since this fixes UB in LLVM, I think it's worth taking a closer look at