| .. _omp130: |
| |
| Removing unused state machine from generic-mode kernel. [OMP130] |
| ================================================================ |
| |
| This optimization remark indicates that an unused state machine was removed from |
| a target region. This occurs when there are no parallel regions inside of a |
| target construct. Normally, a state machine is required to schedule the threads |
| inside of a parallel region. If there are no parallel regions, the state machine |
| is unnecessary because there is only a single thread active at any time. |
| |
| Examples |
| -------- |
| |
| This optimization should occur on any target region that does not contain any |
| parallel work. |
| |
| .. code-block:: c++ |
| |
| void copy(int N, double *X, double *Y) { |
| #pragma omp target teams distribute map(tofrom: X[0:N]) map(tofrom: Y[0:N]) |
| for (int i = 0; i < N; ++i) |
| Y[i] = X[i]; |
| } |
| |
| .. code-block:: console |
| |
| $ clang++ -fopenmp -fopenmp-targets=nvptx64 -O2 -Rpass=openmp-opt omp130.cpp |
| omp130.cpp:2:1: remark: Removing unused state machine from generic-mode kernel. [OMP130] |
| #pragma omp target teams distribute map(tofrom: X[0:N]) map(tofrom: Y[0:N]) |
| ^ |
| |
| Diagnostic Scope |
| ---------------- |
| |
| OpenMP target offloading optimization remark. |