[cfe-commits] r139580 - in /cfe/trunk: lib/CodeGen/CGObjC.cpp lib/CodeGen/CodeGenFunction.h test/CodeGenObjC/atomic-aggregate-property.m

John McCall rjmccall at apple.com
Tue Sep 13 12:47:22 PDT 2011


On Sep 13, 2011, at 8:43 AM, Jeffrey Yasskin wrote:
> On Tue, Sep 13, 2011 at 1:38 AM, John McCall <rjmccall at apple.com> wrote:
>> Is this worth thinking about?  Specifically, will full SC compile any
>> differently from acquiring loads and releasing stores on any of the
>> Apple architectures?
> 
> On x86, SC stores use xchg instructions rather than movs, which makes
> them slower. On ARM, I believe SC requires an extra DMB after stores,
> compared to acq/rel operations:
> http://www.decadent.org.uk/pipermail/cpp-threads/2008-December/001953.html.

Okay, thanks!

It looks like we intentionally don't make any causality guarantees at all —
as long as atomic property reads produce a value that at some point was
written into the ivar, that's good enough.  So llvm::Unordered should be
fine.

Thanks for the advice.

John.



More information about the cfe-commits mailing list