[LLVMdev] LLVM IR atomics: difference between unordered and monotonic? (original) (raw)

Lei Zhao leizhao833 at gmail.com
Fri Jul 13 11:48:20 PDT 2012


Hi All,

I am reading about LLVM IR atomics (http://llvm.org/docs/Atomics.html) and get confused about the difference between "Unordered" and "Monotonic". In particular, I am not sure I understand the statement of "It essentially guarantees that if you take all the operations affecting a specific address, a consistent ordering exists.". For me, it means that for the following example, if {r1,r2} = {1,2}, {r3,r4} = {2,1} is not allowed under "Monotonic" but allowed under "Unordered". Is this all how "Monotonic" is stronger than "Unordered"? If not, can anyone provide an example where other behaviors are allowed under "Unordered" but not "Monotonic"?


T1 T2 T3 T4 W(X)=1 W(X)=2 r1=R(X) r3=R(X) r2=R(X) r4=R(X)


Thank you.



More information about the llvm-dev mailing list