blob: c2d937236b324ca09f6568f67623208d8a5f2950 [file] [log] [blame]
Joseph Huber7eb899c2021-09-10 16:17:54 -04001.. _omp180:
2
3Replacing OpenMP runtime call <call> with <value>.
4====================================================================
5
Shao-Ce SUN0c660252021-11-15 09:17:08 +08006This 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
Joseph Huber7eb899c2021-09-10 16:17:54 -04009single value after analysis.
10
11Example
12-------
13
Shao-Ce SUN0c660252021-11-15 09:17:08 +080014This 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
Johannes Doerfert3c8a4c62022-01-22 16:24:52 -060017`-openmp-opt-verbose-remarks` (prefixed with `-mllvm` for use with clang).
Joseph Huber7eb899c2021-09-10 16:17:54 -040018
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.