.. _omp150:

Parallel region merged with parallel region at <location>. [OMP150]
===================================================================

This optimization remark indicates that a parallel region was merged with others
into a single parallel region. Parallel region merging fuses consecutive
parallel regions to reduce the team activation overhead of forking and increases
the scope of possible OpenMP-specific optimizations within merged parallel
regions. This optimization can also guard sequential code between two parallel
regions if applicable.

Example
-------

This optimization should apply to any compatible and consecutive parallel
regions. In this case the sequential region between the parallel regions will be
guarded so it is only executed by a single thread in the new merged region.

.. code-block:: c++

  void foo() {
  #pragma omp parallel
    parallel_work();
  
    sequential_work();
  
  #pragma omp parallel
    parallel_work();
  }

.. code-block:: console

   $ clang++ -fopenmp -O2 -Rpass=openmp-opt -mllvm -openmp-opt-enable-merging omp150.cpp
   omp150.cpp:2:1: remark: Parallel region merged with parallel region at merge.cpp:7:1. [OMP150]
   #pragma omp parallel
   ^

Diagnostic Scope
----------------

OpenMP optimization remark.
