aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/openmp/runtime/src/kmp_settings.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2022-07-24 15:11:41 +0000
committerDimitry Andric <dim@FreeBSD.org>2023-02-08 19:04:38 +0000
commitfcaf7f8644a9988098ac6be2165bce3ea4786e91 (patch)
tree08a554363df16b968a623d651c09d82a5a0b1c65 /contrib/llvm-project/openmp/runtime/src/kmp_settings.cpp
parent753f127f3ace09432b2baeffd71a308760641a62 (diff)
parent4b4fe385e49bd883fd183b5f21c1ea486c722e61 (diff)
downloadsrc-fcaf7f8644a9988098ac6be2165bce3ea4786e91.tar.gz
src-fcaf7f8644a9988098ac6be2165bce3ea4786e91.zip
Merge llvm-project main llvmorg-15-init-17485-ga3e38b4a206b
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-15-init-17485-ga3e38b4a206b. PR: 265425 MFC after: 2 weeks
Diffstat (limited to 'contrib/llvm-project/openmp/runtime/src/kmp_settings.cpp')
-rw-r--r--contrib/llvm-project/openmp/runtime/src/kmp_settings.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/contrib/llvm-project/openmp/runtime/src/kmp_settings.cpp b/contrib/llvm-project/openmp/runtime/src/kmp_settings.cpp
index 49b23a866a58..97b20d4f8664 100644
--- a/contrib/llvm-project/openmp/runtime/src/kmp_settings.cpp
+++ b/contrib/llvm-project/openmp/runtime/src/kmp_settings.cpp
@@ -2169,6 +2169,7 @@ static void __kmp_parse_affinity_env(char const *name, char const *value,
int respect = 0;
int gran = 0;
int dups = 0;
+ int reset = 0;
bool set = false;
KMP_ASSERT(value != NULL);
@@ -2224,6 +2225,7 @@ static void __kmp_parse_affinity_env(char const *name, char const *value,
#define set_respect(val) _set_param(respect, *out_respect, val)
#define set_dups(val) _set_param(dups, *out_dups, val)
#define set_proclist(val) _set_param(proclist, *out_proclist, val)
+#define set_reset(val) _set_param(reset, __kmp_affin_reset, val)
#define set_gran(val, levels) \
{ \
@@ -2293,6 +2295,12 @@ static void __kmp_parse_affinity_env(char const *name, char const *value,
} else if (__kmp_match_str("norespect", buf, CCAST(const char **, &next))) {
set_respect(FALSE);
buf = next;
+ } else if (__kmp_match_str("reset", buf, CCAST(const char **, &next))) {
+ set_reset(TRUE);
+ buf = next;
+ } else if (__kmp_match_str("noreset", buf, CCAST(const char **, &next))) {
+ set_reset(FALSE);
+ buf = next;
} else if (__kmp_match_str("duplicates", buf,
CCAST(const char **, &next)) ||
__kmp_match_str("dups", buf, CCAST(const char **, &next))) {
@@ -2433,6 +2441,7 @@ static void __kmp_parse_affinity_env(char const *name, char const *value,
#undef set_warnings
#undef set_respect
#undef set_granularity
+#undef set_reset
__kmp_str_free(&buffer);
@@ -2564,6 +2573,11 @@ static void __kmp_stg_print_affinity(kmp_str_buf_t *buffer, char const *name,
} else {
__kmp_str_buf_print(buffer, "%s,", "norespect");
}
+ if (__kmp_affin_reset) {
+ __kmp_str_buf_print(buffer, "%s,", "reset");
+ } else {
+ __kmp_str_buf_print(buffer, "%s,", "noreset");
+ }
__kmp_str_buf_print(buffer, "granularity=%s,",
__kmp_hw_get_keyword(__kmp_affinity_gran, false));
}