xref: /llvm-project/openmp/docs/remarks/OMP180.rst (revision 3c8a4c6f471765451a1b074eb589c9ad367a8e3c)
1.. _omp180:
2
3Replacing OpenMP runtime call <call> with <value>.
4====================================================================
5
6This optimization remark indicates that analysis determined an OpenMP runtime
7calls can be replaced with a constant value. This can occur when an OpenMP
8runtime call that queried some internal state was found to always return a
9single value after analysis.
10
11Example
12-------
13
14This optimization will trigger for most target regions to simplify the runtime
15once certain constants are known. This will trigger for internal runtime
16functions so it requires enabling verbose remarks with
17`-openmp-opt-verbose-remarks` (prefixed with `-mllvm` for use with clang).
18
19.. code-block:: c++
20
21  void foo() {
22  #pragma omp target parallel
23    { }
24  }
25
26.. code-block:: console
27
28  $ clang test.c -fopenmp -fopenmp-targets=nvptx64 -O1 -Rpass=openmp-opt \
29    -mllvm -openmp-opt-verbose-remarks
30  remark: Replacing runtime call __kmpc_is_spmd_exec_mode with 1. [OMP180] [-Rpass=openmp-opt]
31  remark: Replacing runtime call __kmpc_is_spmd_exec_mode with 1. [OMP180] [-Rpass=openmp-opt]
32  remark: Replacing runtime call __kmpc_parallel_level with 1. [OMP180] [-Rpass=openmp-opt]
33  remark: Replacing runtime call __kmpc_parallel_level with 1. [OMP180] [-Rpass=openmp-opt]
34
35Diagnostic Scope
36----------------
37
38OpenMP optimization remark.
39