summaryrefslogtreecommitdiff
path: root/libgomp/omp.h.in
diff options
context:
space:
mode:
authorTobias Burnus <tobias@codesourcery.com>2021-08-12 15:48:28 +0200
committerTobias Burnus <tobias@codesourcery.com>2021-08-12 15:49:49 +0200
commit432de08498142d2266c0fb05f2c555a7f1e10ddd (patch)
treeeb534cfc1379a9d59255a6c31f38519aaba927b4 /libgomp/omp.h.in
parent2d7967a10c2f3b4652f77a1a2119ba03b3472266 (diff)
OpenMP 5.1: Add proc-bind 'primary' support
In OpenMP 5.1 "master thread" was changed to "primary thread" and the proc_bind clause and the OMP_PROC_BIND environment variable now take 'primary' as argument as alias for 'master', while the latter is deprecated. This commit accepts 'primary' and adds the named constant omp_proc_bind_primary and changes 'master thread' in the documentation; however, given that not even OpenMP 5.0 is fully supported, omp_display_env and the dumps currently still output 'master' and there is no deprecation warning when using the 'master' in the proc_bind clause. gcc/c/ChangeLog: * c-parser.c (c_parser_omp_clause_proc_bind): Accept 'primary' as alias for 'master'. gcc/cp/ChangeLog: * parser.c (cp_parser_omp_clause_proc_bind): Accept 'primary' as alias for 'master'. gcc/fortran/ChangeLog: * gfortran.h (gfc_omp_proc_bind_kind): Add OMP_PROC_BIND_PRIMARY. * dump-parse-tree.c (show_omp_clauses): Add TODO comment to change 'master' to 'primary' in proc_bind for OpenMP 5.1. * intrinsic.texi (OMP_LIB): Mention OpenMP 5.1; add omp_proc_bind_primary. * openmp.c (gfc_match_omp_clauses): Accept 'primary' as alias for 'master'. * trans-openmp.c (gfc_trans_omp_clauses): Handle OMP_PROC_BIND_PRIMARY. gcc/ChangeLog: * tree-core.h (omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_PRIMARY. * tree-pretty-print.c (dump_omp_clause): Add TODO comment to change 'master' to 'primary' in proc_bind for OpenMP 5.1. libgomp/ChangeLog: * env.c (parse_bind_var): Accept 'primary' as alias for 'master'. (omp_display_env): Add TODO comment to change 'master' to 'primary' in proc_bind for OpenMP 5.1. * libgomp.texi: Change 'master thread' to 'primary thread' in line with OpenMP 5.1. (omp_get_proc_bind): Add omp_proc_bind_primary and note that omp_proc_bind_master is an alias of it. (OMP_PROC_BIND): Mention 'PRIMARY'. * omp.h.in (__GOMP_DEPRECATED_5_1): Define. (omp_proc_bind_primary): Add. (omp_proc_bind_master): Deprecate for OpenMP 5.1. * omp_lib.f90.in (omp_proc_bind_primary): Add. (omp_proc_bind_master): Deprecate for OpenMP 5.1. * omp_lib.h.in (omp_proc_bind_primary): Add. * testsuite/libgomp.c/affinity-1.c: Check that 'primary' works and is identical to 'master'. gcc/testsuite/ChangeLog: * c-c++-common/gomp/pr61486-2.c: Duplicate one proc_bind(master) testcase and test proc_bind(primary) instead. * gfortran.dg/gomp/affinity-1.f90: Likewise.
Diffstat (limited to 'libgomp/omp.h.in')
-rw-r--r--libgomp/omp.h.in10
1 files changed, 9 insertions, 1 deletions
diff --git a/libgomp/omp.h.in b/libgomp/omp.h.in
index da34a9d98a6..314f964f841 100644
--- a/libgomp/omp.h.in
+++ b/libgomp/omp.h.in
@@ -32,6 +32,12 @@
# define __GOMP_DEPRECATED_5_0
#endif
+#if defined(__GNUC__) && _OPENMP >= 202011
+# define __GOMP_DEPRECATED_5_1 __attribute__((__deprecated__))
+#else
+# define __GOMP_DEPRECATED_5_1
+#endif
+
#ifndef _LIBGOMP_OMP_LOCK_DEFINED
#define _LIBGOMP_OMP_LOCK_DEFINED 1
/* These two structures get edited by the libgomp build process to
@@ -64,7 +70,9 @@ typedef enum omp_proc_bind_t
{
omp_proc_bind_false = 0,
omp_proc_bind_true = 1,
- omp_proc_bind_master = 2,
+ omp_proc_bind_primary = 2,
+ omp_proc_bind_master __GOMP_DEPRECATED_5_1
+ = omp_proc_bind_primary,
omp_proc_bind_close = 3,
omp_proc_bind_spread = 4
} omp_proc_bind_t;