Commit Graph

5 Commits

Author SHA1 Message Date
Torvald Riegel 969a32ce93 Fix __atomic to not implement atomic loads with CAS.
gcc/
	* builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
	conditional on existance of a fast atomic load.
	* optabs-query.c (can_atomic_load_p): New function.
	* optabs-query.h (can_atomic_load_p): Declare it.
	* optabs.c (expand_atomic_exchange): Always delegate to libatomic if
	no fast atomic load is available for the particular size of access.
	(expand_atomic_compare_and_swap): Likewise.
	(expand_atomic_load): Likewise.
	(expand_atomic_store): Likewise.
	(expand_atomic_fetch_op): Likewise.
	* testsuite/lib/target-supports.exp
	(check_effective_target_sync_int_128): Remove x86 because it provides
	no fast atomic load.
	(check_effective_target_sync_int_128_runtime): Likewise.

libatomic/
	* acinclude.m4: Add #define FAST_ATOMIC_LDST_*.
	* auto-config.h.in: Regenerate.
	* config/x86/host-config.h (FAST_ATOMIC_LDST_16): Define to 0.
	(atomic_compare_exchange_n): New.
	* glfree.c (EXACT, LARGER): Change condition and add comments.

From-SVN: r245098
2017-02-01 17:21:59 +00:00
Thomas Schwinge 4044815128 acinclude.m4 (LIBAT_CHECK_IFUNC): Clarify message.
libatomic/
	* acinclude.m4 (LIBAT_CHECK_IFUNC): Clarify message.
	* configure: Regenerate.

From-SVN: r193145
2012-11-05 00:27:03 +01:00
Rainer Orth aaea76b3af Always compile atomic builtin tests with $XCFLAGS
PR other/53284
	* acinclude.m4 (LIBAT_TEST_ATOMIC_BUILTIN): Add -O0 -S to CFLAGS
	instead of overriding.
	* configure: Regenerate.

From-SVN: r187366
2012-05-10 09:11:05 +00:00
Richard Henderson 0fe5522f8b acinclude.m4 (LIBAT_TEST_ATOMIC_BUILTIN): Handle compilation failure in gcc_no_link path.
* acinclude.m4 (LIBAT_TEST_ATOMIC_BUILTIN): Handle compilation
        failure in gcc_no_link path.
        * configure: Rebuild.

From-SVN: r187102
2012-05-03 08:59:43 -07:00
Richard Henderson 483104922a Add libatomic as a target library.
From-SVN: r187018
2012-05-01 08:48:28 -07:00