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

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.

Probably already known, sorry.  I just wasn't sure that trying to
convert everyone (not just ARM) to __sync_* was necessarily going
to go down well.

Richard

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

Reply via email to