[AMDGPU] Make isScalarLoadLegal a member of AMDGPURegisterBankInfo. NFC.
[llvm-project.git] / openmp / docs / remarks / OMP160.rst
blob5012910b18cc311a6d03c9604b8dc0f2b7941ed4
1 .. _omp160:
3 Removing parallel region with no side-effects. [OMP160]
4 =======================================================
6 This optimization remark indicates that a parallel region was deleted because it
7 was not found to have any side-effects. This can occur if the region does not
8 write any of its results to memory visible outside the region. This optimization
9 is necessary because the barrier between sequential and parallel code typically
10 prevents dead code elimination from completely removing the region. Otherwise
11 there will still be overhead to fork and merge the threads with no work done.
13 Example
14 -------
16 This optimization occurs whenever a parallel region was not found to have any
17 side-effects. This can occur if the parallel region only reads memory or is
18 simply empty.
20 .. code-block:: c++
22   void foo() {
23   #pragma omp parallel
24     { }
25   #pragma omp parallel
26     { int x = 1; }
27   }
28   }
30 .. code-block:: console
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    ^
41 Diagnostic Scope
42 ----------------
44 OpenMP optimization remark.