Use __builtin_expect in CAS failure loop condition checks (GCC only)
authorIvan Maidanski <ivmai@mail.ru>
Mon, 26 Mar 2012 04:06:19 +0000 (08:06 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 26 Mar 2012 09:28:08 +0000 (13:28 +0400)
commitcc51941b02fddc75952831eb8e28b06d340d2bef
treeac630d4da3705b8e65cabea9f19b974805ebc073
parentc55bbf932a82af9601a4dff347a0734d4c955b06
Use __builtin_expect in CAS failure loop condition checks (GCC only)

* src/atomic_ops.c (lock, block_all_signals): Use AO_EXPECT_FALSE.
* src/atomic_ops.h (AO_EXPECT_FALSE): New macro.
* src/atomic_ops/generalize-small.template
(AO_XSIZE_fetch_and_add_full, AO_XSIZE_fetch_and_add_acquire,
AO_XSIZE_fetch_and_add_release): Use AO_EXPECT_FALSE for CAS failure
check.
* src/atomic_ops/generalize.h (AO_fetch_and_add_full,
AO_fetch_and_add_acquire, AO_fetch_and_add_release, AO_fetch_and_add,
AO_and_full, AO_or_full, AO_xor_full): Likewise.
* src/atomic_ops/sysdeps/gcc/arm.h
(AO_compare_double_and_swap_double): Likewise.
* src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release,
AO_stack_pop_explicit_aux_acquire, AO_stack_push_release,
AO_stack_pop_acquire): Likewise.
* src/atomic_ops/generalize-small.h: Regenerate.
src/atomic_ops.c
src/atomic_ops.h
src/atomic_ops/generalize-small.h
src/atomic_ops/generalize-small.template
src/atomic_ops/generalize.h
src/atomic_ops/sysdeps/gcc/arm.h
src/atomic_ops_stack.c