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).