LLVMAtomicOrderingNotAtomic

Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.

Values

ValueMeaning
LLVMAtomicOrderingNotAtomic0

< A load or store which is not atomic

LLVMAtomicOrderingUnordered1

< Lowest level of atomicity, guarantees somewhat sane results, lock free.

LLVMAtomicOrderingMonotonic2

< guarantees that if you take all the operations affecting a specific address, a consistent ordering exists

LLVMAtomicOrderingAcquire4

< Acquire provides a barrier of the sort necessary to acquire a lock to access other memory with normal loads and stores.

LLVMAtomicOrderingRelease5

< Release is similar to Acquire, but with a barrier of the sort necessary to release a lock.

LLVMAtomicOrderingAcquireRelease6

< provides both an Acquire and a Release barrier (for fences and operations which both read and write memory).

LLVMAtomicOrderingSequentiallyConsistent7

< provides Acquire semantics for loads and Release semantics for stores. Additionally, it guarantees that a total ordering exists between all SequentiallyConsistent operations.

Meta