================
Comment at: include/__atomic:85
@@ +84,3 @@
+{
+    *__dest = __val;
+}
----------------
EricWF wrote:
> jroelofs wrote:
> > Should these fall back on the __sync_* ones instead of just dropping the 
> > atomicness? It seems a little precarious to silently default to non-atomic 
> > implementations for these (unless this is for a single-threaded build of 
> > the library).
> Yes and no. The only atomic operations needed in the headers are relaxed 
> atomic loads. AFAIK all loads are relaxed atomic loads on x86 so not using 
> atomic builtins isn't a big deal (its what we already do).
> 
> The rest of the atomic operations happen within the dylib. I agree we don't 
> want to drop the atomicness on these unless it is a single threaded build.
> 
> What we really should do is limit the libc++ dylib build to compilers that 
> provide the required atomic intrinsics (single-threaded builds not 
> withstanding). If the compiler is not supported then the build should fail. 
> For GCC and Clang the required versions would be 4.7 and 3.3 (possibly lower) 
> respectively.
> 
> Since most of the stuff in `__atomic` is only used in the dylib build perhaps 
> it should be moved out of the shipped headers. I'll figure out how to handle 
> that tomorrow.
> AFAIK all loads are relaxed atomic loads on x86 so not using atomic builtins 
> isn't a big deal

What about PPC-darwin?

> What we really should do is limit the libc++ dylib build to compilers that 
> provide the required atomic intrinsics (single-threaded builds not 
> withstanding)

Agreed.

http://reviews.llvm.org/D10406

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/



_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to