r180460 - in /branches/cxx-mem-model: gcc/Chang...
amacleod@gcc.gnu.org
amacleod@gcc.gnu.org
Tue Oct 25 23:01:00 GMT 2011
Author: amacleod
Date: Tue Oct 25 23:01:05 2011
New Revision: 180460
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180460
Log:
gcc/c-family
2011-10-25 Andrew MacLeod <amacleod@redhat.com>
* c-common.c (get_atomic_generic_size): New. Find size of generic
atomic function parameters and do typechecking.
(add_atomic_size_parameter): New. Insert size into parameter list.
(resolve_overloaded_atomic_exchange): Restructure __atomic_exchange to
either __atomic_exchange_n or external library call.
(resolve_overloaded_atomic_compare_exchange): Restructure
__atomic_compare_exchange to either _n variant or external library call.
(resolve_overloaded_atomic_load): Restructure __atomic_load to either
__atomic_load_n or an external library call.
(resolve_overloaded_atomic_store): Restructure __atomic_store to either
__atomic_store_n or an external library call.
(resolve_overloaded_builtin): Handle 4 generic __atomic calls.
gcc
2011-10-25 Andrew MacLeod <amacleod@redhat.com>
* c-typeck.c (build_function_call_vec): Don't reprocess __atomic
parameters.
* doc/extend.texi: Document generic __atomic functions.
* sync-builtin.def (BUILT_IN_ATOMIC_EXCHANGE_N, BUILT_IN_ATOMIC_LOAD_N,
BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N, BUILT_IN_ATOMIC_STORE_N): Add "_n"
to the functions real name.
(BUILT_IN_ATOMIC_EXCHANGE, BUILT_IN_ATOMIC_LOAD,
BUILT_IN_ATOMIC_COMPARE_EXCHANGE, BUILT_IN_ATOMIC_STORE): New. Add
generic atomic builtin functions.
* builtin-types.def (BT_FN_VOID_SIZE_VPTR_PTR_INT,
BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT): New builtin types.
fortran
2011-10-25 Andrew MacLeod <amacleod@redhat.com>
* fortran/types.def (BT_FN_VOID_SIZE_VPTR_PTR_INT,
BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT): New builtin types.
libstdc++-v3
2011-10-25 Andrew MacLeod <amacleod@redhat.com>
* include/bits/atomic_2.h: Rename __atomic_exchange, __atomic_load,
__atomic_store, and __atomic_compare_exchange to '_n' variant.
gcc/testsuite
2011-10-25 Andrew MacLeod <amacleod@redhat.com>
* gcc.dg/atomic-generic-aux.c: New. Provide 4 functional external
entrypoints for new generic library functions.
* gcc.dg/atomic-generic.c: New. Test that generic functions produce
the expected library calls.
* gcc.dg/atomic-compare-exchange*.c: Replace __atomic_compare_exchange
with __atomic_compare_exchange_n. Add generic variations.
* gcc.dg/atomic-exchange*.c: Replace __atomic_exchange with
__atomic_exchange_n. Add generic variations.
* gcc.dg/atomic-invalid.c: Add _n to renamed functions.
gcc.dg/atomic-load*.c: Replace __atomic_load with __atomic_load_n. Add
generic variations.
* gcc.dg/atomic-param.c: Add _n to renamed functions.
* gcc.dg/atomic-store*.c: Replace __atomic_store with __atomic_store_n.
Add generic variations.
* gcc.dg/simulate-thread/atomic*.c: Add _n to renamed functions.
Modified:
branches/cxx-mem-model/libstdc++-v3/ChangeLog.mm
branches/cxx-mem-model/libstdc++-v3/include/bits/atomic_2.h
Changes in other areas also in this revision:
Added:
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-generic-aux.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-generic.c
Modified:
branches/cxx-mem-model/gcc/ChangeLog.mm
branches/cxx-mem-model/gcc/builtin-types.def
branches/cxx-mem-model/gcc/c-family/ChangeLog.mm
branches/cxx-mem-model/gcc/c-family/c-common.c
branches/cxx-mem-model/gcc/c-typeck.c
branches/cxx-mem-model/gcc/doc/extend.texi
branches/cxx-mem-model/gcc/fortran/ChangeLog.mm
branches/cxx-mem-model/gcc/fortran/types.def
branches/cxx-mem-model/gcc/sync-builtins.def
branches/cxx-mem-model/gcc/testsuite/ChangeLog.mm
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-compare-exchange-1.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-compare-exchange-2.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-compare-exchange-3.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-compare-exchange-4.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-compare-exchange-5.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-exchange-1.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-exchange-2.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-exchange-3.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-exchange-4.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-exchange-5.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-invalid.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-load-1.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-load-2.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-load-3.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-load-4.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-load-5.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-param.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-store-1.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-store-2.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-store-3.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-store-4.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/atomic-store-5.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int128.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-longlong.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-short.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/simulate-thread/atomic-other-int.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/simulate-thread/atomic-other-int128.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/simulate-thread/atomic-other-longlong.c
branches/cxx-mem-model/gcc/testsuite/gcc.dg/simulate-thread/atomic-other-short.c
More information about the Libstdc++-cvs
mailing list