On Monday, November 22, 2010 12:34:04 pm Richard Sandiford wrote:
> For the record, the thing I half-remembered on the call was:
> 
>     http://gcc.gnu.org/ml/gcc-patches/2009-08/msg00697.html
> and:
>     http://gcc.gnu.org/ml/gcc-patches/2009-09/msg02112.html
> 
> The problem is that all __sync operations besides __sync_lock_test_and_set
> and __sync_lock_release are defined to be full barriers.  Using something
> like __sync_val_compare_and_swap for __arch_compare_and_exchange_val_*_acq
> and __arch_compare_and_exchange_val_*_rel may on some architectures be too
> heavyweight, since those macros only need acquire/after and release/before
> barriers.  See in particular:
> 
>     http://gcc.gnu.org/ml/gcc-patches/2009-08/msg00928.html

Hi Richard, 
Thanks for providing these pointers. I wasn't aware of them.

> from the first thread, where the feeling was that the future wasn't
> these __sync builtins, but the new C and C++ atomic memory support.

This was also suggested by Joseph S. Myers on the libc-ports list:
http://sourceware.org/ml/libc-ports/2010-11/msg00013.html

Regards
Ken

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to