1.. _omp160: 2 3Removing parallel region with no side-effects. [OMP160] 4======================================================= 5 6This optimization remark indicates that a parallel region was deleted because it 7was not found to have any side-effects. This can occur if the region does not 8write any of its results to memory visible outside the region. This optimization 9is necessary because the barrier between sequential and parallel code typically 10prevents dead code elimination from completely removing the region. Otherwise 11there will still be overhead to fork and merge the threads with no work done. 12 13Example 14------- 15 16This optimization occurs whenever a parallel region was not found to have any 17side-effects. This can occur if the parallel region only reads memory or is 18simply empty. 19 20.. code-block:: c++ 21 22 void foo() { 23 #pragma omp parallel 24 { } 25 #pragma omp parallel 26 { int x = 1; } 27 } 28 } 29 30.. code-block:: console 31 32 $ clang++ -fopenmp -O2 -Rpass=openmp-opt omp160.cpp 33 omp160.cpp:4:1: remark: Removing parallel region with no side-effects. [OMP160] [-Rpass=openmp-opt] 34 #pragma omp parallel 35 ^ 36 delete.cpp:2:1: remark: Removing parallel region with no side-effects. [OMP160] [-Rpass=openmp-opt] 37 #pragma omp parallel 38 ^ 39 ^ 40 41Diagnostic Scope 42---------------- 43 44OpenMP optimization remark. 45