[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
- Previous message: [LLVMdev] Hardware upgrades in lab.llvm
- Next message: [LLVMdev] LLVM IR atomics: difference between unordered and monotonic?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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)
- Legend: four threads run in parallel; W(X)/R(X) meaning atomic write/read of X.
Thank you.
- Lei -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120713/f0935a3c/attachment.html>
- Previous message: [LLVMdev] Hardware upgrades in lab.llvm
- Next message: [LLVMdev] LLVM IR atomics: difference between unordered and monotonic?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]