Skip to content

nativeGen/X86: MFENCE is unnecessary for release semantics

Ben Gamari requested to merge wip/T22764 into master

In #22764 (closed) a user noticed that a program implementing a simple atomic counter via an STRef regressed significantly due to the introduction of necessary atomic operations in the MutVar# primops (#22468 (closed)). This regression was caused by a bug in the NCG, which emitted an unnecessary MFENCE instruction for a release-ordered atomic write. MFENCE is rather only needed to achieve sequentially consistent ordering.

Fixes #22764 (closed).

Merge request reports