xref: /llvm-project/openmp/docs/remarks/OMP132.rst (revision 0c660256eb41fb0ba44277a32f39d2a028f797f2)
1Generic-mode kernel is executed with a customized state machine that requires a fallback. [OMP132]
2==================================================================================================
3
4.. _omp132:
5
6This analysis remark indicates that a state machine rewrite occurred, but
7could not be done fully because of unknown calls to functions that may contain
8parallel regions. The state machine handles scheduling work between parallel
9worker threads on the device when operating in generic-mode. If there are
10unknown parallel regions it prevents the optimization from fully rewriting the
11state machine.
12
13Examples
14--------
15
16This will occur for any generic-mode kernel that may contain unknown parallel
17regions. This is typically coupled with the :ref:`OMP133 <omp133>` remark.
18
19.. code-block:: c++
20
21   extern void setup();
22
23   void foo() {
24   #pragma omp target
25   {
26     setup();
27     #pragma omp parallel
28     {
29       work();
30     }
31   }
32   }
33
34.. code-block:: console
35
36   $ clang++ -fopenmp -fopenmp-targets=nvptx64 -O2 -Rpass-analysis=openmp-opt omp132.cpp
37   omp133.cpp:4:1: remark: Generic-mode kernel is executed with a customized state machine
38   that requires a fallback. [OMP132]
39   #pragma omp target
40   ^
41
42Diagnostic Scope
43----------------
44
45OpenMP target offloading analysis remark.
46