https://github.com/kparzysz created https://github.com/llvm/llvm-project/pull/97446
This removes mentions of specific combined directives. Also, add a quote from the OpenMP spec to explain the code dealing with the `bind` clause. >From 316d5a11bd7f6afb99cd7d25baf43ec2679561dc Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek <krzysztof.parzys...@amd.com> Date: Mon, 1 Jul 2024 15:18:07 -0500 Subject: [PATCH] [clang][OpenMP] Use leaf constructs in `mapLoopConstruct` This removes mentions of specific combined directives. Also, add a quote from the OpenMP spec to explain the code dealing with the `bind` clause. --- clang/lib/Sema/SemaOpenMP.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index 86666f064f35d..ca7e8acd1c15a 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -6270,16 +6270,20 @@ bool SemaOpenMP::mapLoopConstruct( if (BindKind == OMPC_BIND_unknown) { // Setting the enclosing teams or parallel construct for the loop // directive without bind clause. + // [5.0:129:25-28] If the bind clause is not present on the construct and + // the loop construct is closely nested inside a teams or parallel + // construct, the binding region is the corresponding teams or parallel + // region. If none of those conditions hold, the binding region is not + // defined. BindKind = OMPC_BIND_thread; // Default bind(thread) if binding is unknown + auto ParentLeafs = getLeafConstructsOrSelf(ParentDirective); if (ParentDirective == OMPD_unknown) { Diag(DSAStack->getDefaultDSALocation(), diag::err_omp_bind_required_on_loop); - } else if (ParentDirective == OMPD_parallel || - ParentDirective == OMPD_target_parallel) { + } else if (ParentLeafs.back() == OMPD_parallel) { BindKind = OMPC_BIND_parallel; - } else if (ParentDirective == OMPD_teams || - ParentDirective == OMPD_target_teams) { + } else if (ParentLeafs.back() == OMPD_teams) { BindKind = OMPC_BIND_teams; } } else { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits