5 days ago
Is there a formal description of "hoist-load", "hoist-store", "sink-load", and "sink-store" as used in core.atomic.MemoryOrder (https://dlang.org/library/core/atomic/memory_order.html)?
1 day ago
On Wednesday, 13 September 2017 at 14:40:55 UTC, Nathan S. wrote:
> Is there a formal description of "hoist-load", "hoist-store", "sink-load", and "sink-store" as used in core.atomic.MemoryOrder (https://dlang.org/library/core/atomic/memory_order.html)?

You can read this:
https://llvm.org/docs/Atomics.html#atomic-orderings

And use this:
```
        static if (ms == MemoryOrder.acq) {
            enum _ordering = AtomicOrdering.Acquire;
        } else static if (ms == MemoryOrder.rel) {
            enum _ordering = AtomicOrdering.Release;
        } else static if (ms == MemoryOrder.seq) {
            enum _ordering = AtomicOrdering.SequentiallyConsistent;
        } else static if (ms == MemoryOrder.raw) {
            enum _ordering = AtomicOrdering.Monotonic;
        }
```

-Johan