gcc/libatomic
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
..
config Fix __atomic to not implement atomic loads with CAS. 2017-02-01 17:21:59 +00:00
testsuite re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-21 09:47:11 +01:00
.gitignore
acinclude.m4 Fix __atomic to not implement atomic loads with CAS. 2017-02-01 17:21:59 +00:00
aclocal.m4
auto-config.h.in Fix __atomic to not implement atomic loads with CAS. 2017-02-01 17:21:59 +00:00
cas_n.c
ChangeLog Fix __atomic to not implement atomic loads with CAS. 2017-02-01 17:21:59 +00:00
configure re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
configure.ac re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
configure.tgt
exch_n.c
fadd_n.c
fand_n.c
fence.c
fenv.c
fior_n.c
flag.c
fnand_n.c
fop_n.c
fsub_n.c
fxor_n.c
gcas.c
gexch.c
glfree.c Fix __atomic to not implement atomic loads with CAS. 2017-02-01 17:21:59 +00:00
gload.c
gstore.c
host-config.h
init.c
libatomic_i.h
libatomic.map
load_n.c
Makefile.am re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
Makefile.in re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
store_n.c
tas_n.c