OpenMP Optimization Remarks

The {doc}OpenMP-Aware optimization pass </optimizations/OpenMPOpt> is able to generate compiler remarks for performed and missed optimisations. To emit them, pass these options to the Clang invocation: -Rpass=openmp-opt -Rpass-analysis=openmp-opt -Rpass-missed=openmp-opt. For more information and features of the remark system, consult the clang documentation:

OpenMP Remarks

:::{toctree} :hidden: true :maxdepth: 1

OMP100 OMP101 OMP102 OMP110 OMP111 OMP112 OMP113 OMP120 OMP121 OMP130 OMP131 OMP132 OMP133 OMP140 OMP150 OMP160 OMP170 OMP180 OMP190 :::

:::{list-table} :widths: 15 15 70 :header-rows: 1

    • Diagnostics Number
    • Diagnostics Kind
    • Diagnostics Description
    • {ref}OMP100 <omp100>
    • Analysis
    • Potentially unknown OpenMP target region caller.
    • {ref}OMP101 <omp101>
    • Analysis
    • Parallel region is used in unknown / unexpected ways. Will not attempt to rewrite the state machine.
    • {ref}OMP102 <omp102>
    • Analysis
    • Parallel region is not called from a unique kernel. Will not attempt to rewrite the state machine.
    • {ref}OMP110 <omp110>
    • Optimization
    • Moving globalized variable to the stack.
    • {ref}OMP111 <omp111>
    • Optimization
    • Replaced globalized variable with X bytes of shared memory.
    • {ref}OMP112 <omp112>
    • Missed
    • Found thread data sharing on the GPU. Expect degraded performance due to data globalization.
    • {ref}OMP113 <omp113>
    • Missed
    • Could not move globalized variable to the stack. Variable is potentially captured in call. Mark parameter as {title-reference}__attribute__((noescape)) to override.
    • {ref}OMP120 <omp120>
    • Optimization
    • Transformed generic-mode kernel to SPMD-mode.
    • {ref}OMP121 <omp121>
    • Analysis
    • Value has potential side effects preventing SPMD-mode execution. Add {title-reference}[[omp::assume(\"ompx_spmd_amenable\")]] to the called function to override.
    • {ref}OMP130 <omp130>
    • Optimization
    • Removing unused state machine from generic-mode kernel.
    • {ref}OMP131 <omp131>
    • Optimization
    • Rewriting generic-mode kernel with a customized state machine.
    • {ref}OMP132 <omp132>
    • Analysis
    • Generic-mode kernel is executed with a customized state machine that requires a fallback.
    • {ref}OMP133 <omp133>
    • Analysis
    • Call may contain unknown parallel regions. Use {title-reference}[[omp::assume("omp_no_parallelism")]] to override.
    • {ref}OMP140 <omp140>
    • Analysis
    • Could not internalize function. Some optimizations may not be possible.
    • {ref}OMP150 <omp150>
    • Optimization
    • Parallel region merged with parallel region at <location>.
    • {ref}OMP160 <omp160>
    • Optimization
    • Removing parallel region with no side-effects.
    • {ref}OMP170 <omp170>
    • Optimization
    • OpenMP runtime call <call> deduplicated.
    • {ref}OMP180 <omp180>
    • Optimization
    • Replacing OpenMP runtime call <call> with <value>.
    • {ref}OMP190 <omp190>
    • Optimization
    • Redundant barrier eliminated. (device only) :::