[clang] [llvm] [Clang][OpenMP] Implement Loop splitting `#pragma omp split` directive (PR #183261)

Michael Kruse via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 26 05:57:08 PDT 2026


================
@@ -11153,6 +11153,12 @@ def err_omp_bind_required_on_loop : Error<
   "construct">;
 def err_omp_loop_reduction_clause : Error<
   "'reduction' clause not allowed with '#pragma omp loop bind(teams)'">;
+def err_omp_split_counts_multiple_omp_fill : Error<
+  "at most one 'omp_fill' may appear in the 'counts' clause">;
----------------
Meinersbur wrote:

There will probably be other directives in the future that use the `counts` clause and but don't make use of `omp_fill`. This restruction just says "the argument to counts is a list of integer constants and `omp_fill` keywords", without saying how often they occur.

The choice of words is the style of restrictions in the specification, intended to be read as  
"Any x that is a list item in counts-list must be a constant or omp_fill" or "If x is a list item in a counts-list, then x must be a constant or omp_fill". If it was meant to occur once, it would use "(Extactly) One", as the restriction for `split`.

I am not definding this language style, but it is required for the specification.

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


More information about the cfe-commits mailing list