aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHongyu Wang <hongyu.wang@intel.com>2023-03-08 11:29:46 +0800
committerHongyu Wang <hongyu.wang@intel.com>2023-03-09 09:01:13 +0800
commit288bc7b5d17511d1791899e4b2e3bf3489eb06dd (patch)
tree11c219f312548cc73e7e2f212d573eb6bded0daf
parent6a87fdd3ed6ef3511466f9cf41271726b643520b (diff)
downloadgcc-288bc7b5d17511d1791899e4b2e3bf3489eb06dd.zip
gcc-288bc7b5d17511d1791899e4b2e3bf3489eb06dd.tar.gz
gcc-288bc7b5d17511d1791899e4b2e3bf3489eb06dd.tar.bz2
libgomp: Fix default value of GOMP_SPINCOUNT [PR 109062]
When OMP_WAIT_POLICY is not specified, current implementation will cause icv flag GOMP_ICV_WAIT_POLICY unset, so global variable wait_policy will remain its uninitialized value. Initialize it to -1 to make GOMP_SPINCOUNT behavior consistent with its description. libgomp/ChangeLog: PR libgomp/109062 * env.c (wait_policy): Initialize to -1. (initialize_icvs): Initialize icvs->wait_policy to -1. * testsuite/libgomp.c-c++-common/pr109062.c: New test.
-rw-r--r--libgomp/env.c4
-rw-r--r--libgomp/testsuite/libgomp.c-c++-common/pr109062.c14
2 files changed, 16 insertions, 2 deletions
diff --git a/libgomp/env.c b/libgomp/env.c
index c41c1f8..e7a035b 100644
--- a/libgomp/env.c
+++ b/libgomp/env.c
@@ -124,7 +124,7 @@ int goacc_default_dims[GOMP_DIM_MAX];
#ifndef LIBGOMP_OFFLOADED_ONLY
-static int wait_policy;
+static int wait_policy = -1;
static unsigned long stacksize = GOMP_DEFAULT_STACKSIZE;
static void
@@ -1981,7 +1981,7 @@ initialize_icvs (struct gomp_initial_icvs *icvs)
icvs->bind_var = gomp_default_icv_values.bind_var;
icvs->nteams_var = gomp_default_icv_values.nteams_var;
icvs->teams_thread_limit_var = gomp_default_icv_values.teams_thread_limit_var;
- icvs->wait_policy = 0;
+ icvs->wait_policy = -1;
}
/* Helper function for initialize_env to add a device specific ICV value
diff --git a/libgomp/testsuite/libgomp.c-c++-common/pr109062.c b/libgomp/testsuite/libgomp.c-c++-common/pr109062.c
new file mode 100644
index 0000000..5c7c287
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c-c++-common/pr109062.c
@@ -0,0 +1,14 @@
+/* { dg-do run } */
+
+#include <omp.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ omp_display_env (1);
+
+ return 0;
+}
+
+/* { dg-output ".*\\\[host] GOMP_SPINCOUNT = '300000'.*" { target native } } */