brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 0687281 Raw
37 lines · plain
1.. _omp130:2 3Removing unused state machine from generic-mode kernel. [OMP130]4================================================================5 6This optimization remark indicates that an unused state machine was removed from7a target region. This occurs when there are no parallel regions inside of a8target construct. Normally, a state machine is required to schedule the threads9inside of a parallel region. If there are no parallel regions, the state machine10is unnecessary because there is only a single thread active at any time.11 12Examples13--------14 15This optimization should occur on any target region that does not contain any16parallel work.17 18.. code-block:: c++19 20   void copy(int N, double *X, double *Y) {21   #pragma omp target teams distribute map(tofrom: X[0:N]) map(tofrom: Y[0:N])22     for (int i = 0; i < N; ++i)23       Y[i] = X[i];24   }25 26.. code-block:: console27 28   $ clang++ -fopenmp -fopenmp-targets=nvptx64 -O2 -Rpass=openmp-opt omp130.cpp29   omp130.cpp:2:1: remark: Removing unused state machine from generic-mode kernel. [OMP130]30   #pragma omp target teams distribute map(tofrom: X[0:N]) map(tofrom: Y[0:N])31   ^32 33Diagnostic Scope34----------------35 36OpenMP target offloading optimization remark.37