blob: 8bec489d0a21347aacc1c193b8fc23cc97d1bcb1 [file] [view] [edit]
(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.
```c++
void foo() {
#pragma omp parallel
parallel_work();
sequential_work();
#pragma omp parallel
parallel_work();
}
```
```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.