Memory Ordering work in progress

I cannot emphasize this enough: when it comes to correctness (what your program means what the compiler thinks you mean), the memory model of your physical machine is irrelevant. What matters is the memory model of your programming language (and its virtual machine).