39 lines
1.3 KiB
ReStructuredText
39 lines
1.3 KiB
ReStructuredText
|
.. _omp180:
|
||
|
|
||
|
Replacing OpenMP runtime call <call> with <value>.
|
||
|
====================================================================
|
||
|
|
||
|
This optimization remark indicates that analysis determined an OpenMP runtime
|
||
|
calls can be replaced with a constant value. This can occur when an OpenMP
|
||
|
runtime call that queried some internal state was found to always return a
|
||
|
single value after analysis.
|
||
|
|
||
|
Example
|
||
|
-------
|
||
|
|
||
|
This optimization will trigger for most target regions to simplify the runtime
|
||
|
once certain constants are known. This will trigger for internal runtime
|
||
|
functions so it requires enabling verbose remarks with
|
||
|
`-openmp-opt-verbose-remarks` (prefixed with `-mllvm` for use with clang).
|
||
|
|
||
|
.. code-block:: c++
|
||
|
|
||
|
void foo() {
|
||
|
#pragma omp target parallel
|
||
|
{ }
|
||
|
}
|
||
|
|
||
|
.. code-block:: console
|
||
|
|
||
|
$ clang test.c -fopenmp -fopenmp-targets=nvptx64 -O1 -Rpass=openmp-opt \
|
||
|
-mllvm -openmp-opt-verbose-remarks
|
||
|
remark: Replacing runtime call __kmpc_is_spmd_exec_mode with 1. [OMP180] [-Rpass=openmp-opt]
|
||
|
remark: Replacing runtime call __kmpc_is_spmd_exec_mode with 1. [OMP180] [-Rpass=openmp-opt]
|
||
|
remark: Replacing runtime call __kmpc_parallel_level with 1. [OMP180] [-Rpass=openmp-opt]
|
||
|
remark: Replacing runtime call __kmpc_parallel_level with 1. [OMP180] [-Rpass=openmp-opt]
|
||
|
|
||
|
Diagnostic Scope
|
||
|
----------------
|
||
|
|
||
|
OpenMP optimization remark.
|