[clang] [llvm] [Clang][OpenMP] Support for dispatch construct (Sema & Codegen) support (PR #131838)

via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 10 10:26:19 PDT 2025


================
@@ -11899,6 +11899,9 @@ def err_omp_clause_requires_dispatch_construct : Error<
   "'%0' clause requires 'dispatch' context selector">;
 def err_omp_append_args_with_varargs : Error<
   "'append_args' is not allowed with varargs functions">;
+def warn_omp_dispatch_clause_novariants_nocontext : Warning<
----------------
SunilKuravinakop wrote:

In case of :
```
#pragma omp declare variant(foo_variant2) match(user={condition(1)})
#pragma omp declare variant(foo_variant) match(construct={dispatch})
void foo(int x) {
}

#pragma omp dispatch nocontext(c1)
```
the code generated in the if-else is:
```
if(c1) {
   foo_variant2(x)
} else {
  foo_variant(x)
}
```
whereas for `#pragma omp dispatch novariantc2)` it is 
```
if(c2) {
   foo(x)
} else {
  foo_variant(x)
}
```
There is a difference in the code generate at `if` . Hence I cannot use `c1 || c2`.

https://github.com/llvm/llvm-project/pull/131838


More information about the llvm-commits mailing list