diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-11 17:52:11 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-11 17:52:11 +0000 |
commit | 3ec11c499027aff2ba4041409c7ad18a372d767c (patch) | |
tree | 1269946d9053f55f9328174653105f6943967e41 /gcc/optabs.h | |
parent | 916caf364f2972db357207e621931ad8a61f651c (diff) | |
download | gcc-3ec11c499027aff2ba4041409c7ad18a372d767c.tar.gz |
Implement omp atomic load and store.
* gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed.
(dump_gimple_omp_atomic_store): Likewise.
* optabs.c (can_atomic_exchange_p): New.
* optabs.h (can_atomic_exchange_p): Declare.
* omp-low.c (expand_omp_atomic_load): Implement.
(expand_omp_atomic_store): Likewise.
(expand_omp_atomic): Update for new arguments to load/store.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181296 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/optabs.h')
-rw-r--r-- | gcc/optabs.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h index bc705dceb61..654d2766f40 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -971,6 +971,9 @@ enum insn_code can_float_p (enum machine_mode, enum machine_mode, int); /* Return true if there is an inline compare and swap pattern. */ extern bool can_compare_and_swap_p (enum machine_mode, bool); +/* Return true if there is an inline atomic exchange pattern. */ +extern bool can_atomic_exchange_p (enum machine_mode, bool); + /* Generate code for a compare and swap. */ extern bool expand_atomic_compare_and_swap (rtx *, rtx *, rtx, rtx, rtx, bool, enum memmodel, enum memmodel); |