summaryrefslogtreecommitdiffstats
path: root/openmp/runtime/src/include/50
diff options
context:
space:
mode:
authorJonathan Peyton <jonathan.l.peyton@intel.com>2019-04-30 19:20:35 +0000
committerJonathan Peyton <jonathan.l.peyton@intel.com>2019-04-30 19:20:35 +0000
commit71abe28e8152239e4e2be443497845eeb523139a (patch)
treecead0f14f70561af4ba6f16db04b591bb44a32b4 /openmp/runtime/src/include/50
parent3a7532e645b959f69214578d14dc633baf564df0 (diff)
downloadbcm5719-llvm-71abe28e8152239e4e2be443497845eeb523139a.tar.gz
bcm5719-llvm-71abe28e8152239e4e2be443497845eeb523139a.zip
[OpenMP] Add OpenMP 5.0 nonmonotonic code
This patch adds: * New omp_sched_monotonic flag to omp_sched_t which is handled within the runtime * Parsing of monotonic/nonmonotonic in OMP_SCHEDULE * Tests for the monotonic flag and envirable parsing * Logic to force monotonic when hierarchical scheduling is used Differential Revision: https://reviews.llvm.org/D60979 llvm-svn: 359601
Diffstat (limited to 'openmp/runtime/src/include/50')
-rw-r--r--openmp/runtime/src/include/50/omp.h.var9
-rw-r--r--openmp/runtime/src/include/50/omp_lib.f.var1
-rw-r--r--openmp/runtime/src/include/50/omp_lib.f90.var2
-rw-r--r--openmp/runtime/src/include/50/omp_lib.h.var2
4 files changed, 9 insertions, 5 deletions
diff --git a/openmp/runtime/src/include/50/omp.h.var b/openmp/runtime/src/include/50/omp.h.var
index 5f689089a16..05dc26672b2 100644
--- a/openmp/runtime/src/include/50/omp.h.var
+++ b/openmp/runtime/src/include/50/omp.h.var
@@ -43,10 +43,11 @@
/* schedule kind constants */
typedef enum omp_sched_t {
- omp_sched_static = 1,
- omp_sched_dynamic = 2,
- omp_sched_guided = 3,
- omp_sched_auto = 4
+ omp_sched_static = 1,
+ omp_sched_dynamic = 2,
+ omp_sched_guided = 3,
+ omp_sched_auto = 4,
+ omp_sched_monotonic = 0x80000000
} omp_sched_t;
/* set API functions */
diff --git a/openmp/runtime/src/include/50/omp_lib.f.var b/openmp/runtime/src/include/50/omp_lib.f.var
index 8b7cffe194b..17d0a2a81e9 100644
--- a/openmp/runtime/src/include/50/omp_lib.f.var
+++ b/openmp/runtime/src/include/50/omp_lib.f.var
@@ -61,6 +61,7 @@
integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2
integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3
integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4
+ integer(kind=omp_sched_kind), parameter :: omp_sched_monotonic = Z'80000000'
integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0
integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1
diff --git a/openmp/runtime/src/include/50/omp_lib.f90.var b/openmp/runtime/src/include/50/omp_lib.f90.var
index af12927c899..cef6f332c27 100644
--- a/openmp/runtime/src/include/50/omp_lib.f90.var
+++ b/openmp/runtime/src/include/50/omp_lib.f90.var
@@ -59,7 +59,7 @@
integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2
integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3
integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4
-
+ integer(kind=omp_sched_kind), parameter :: omp_sched_monotonic = Z'80000000'
integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0
integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1
diff --git a/openmp/runtime/src/include/50/omp_lib.h.var b/openmp/runtime/src/include/50/omp_lib.h.var
index 94612b0cfc7..cf861834421 100644
--- a/openmp/runtime/src/include/50/omp_lib.h.var
+++ b/openmp/runtime/src/include/50/omp_lib.h.var
@@ -68,6 +68,8 @@
parameter(omp_sched_guided=3)
integer(kind=omp_sched_kind)omp_sched_auto
parameter(omp_sched_auto=4)
+ integer(kind=omp_sched_kind)omp_sched_monotonic
+ parameter(omp_sched_monotonic=Z'80000000')
integer(kind=omp_proc_bind_kind)omp_proc_bind_false
parameter(omp_proc_bind_false=0)
OpenPOWER on IntegriCloud