.. _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.
