On Nov 15, 2012, at 2:18 PM, David Nadlinger <s...@klickverbot.at> wrote:
> On Thursday, 15 November 2012 at 16:43:14 UTC, Sean Kelly wrote: >> On Nov 15, 2012, at 5:16 AM, deadalnix <deadal...@gmail.com> wrote: >>> What is the point of ensuring that the compiler does not reorder >>> load/stores if the CPU is allowed to do so ? >> >> Because we can write ASM to tell the CPU not to. We don't have any such >> ability for the compiler right now. > > I think the question was: Why would you want to disable compiler code motion > for loads/stores which are not atomic, as the CPU might ruin your assumptions > anyway? A barrier isn't always necessary to achieve the desired ordering on a given system. But I'd still call out to ASM to make sure the intended operation happened. I don't know that I'd ever feel comfortable with "volatile x=y" even if what I'd do instead is just a MOV.