summaryrefslogtreecommitdiff
path: root/gcc/optabs.h
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-11 17:52:11 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-11 17:52:11 +0000
commit3ec11c499027aff2ba4041409c7ad18a372d767c (patch)
tree1269946d9053f55f9328174653105f6943967e41 /gcc/optabs.h
parent916caf364f2972db357207e621931ad8a61f651c (diff)
downloadgcc-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.h3
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);