xref: /llvm-project/openmp/docs/remarks/OMP190.rst (revision 3c8a4c6f471765451a1b074eb589c9ad367a8e3c)
1*3c8a4c6fSJohannes Doerfert.. _omp190:
2*3c8a4c6fSJohannes Doerfert
3*3c8a4c6fSJohannes DoerfertRedundant barrier eliminated. (device only)
4*3c8a4c6fSJohannes Doerfert====================================================================
5*3c8a4c6fSJohannes Doerfert
6*3c8a4c6fSJohannes DoerfertThis optimization remark indicates that analysis determined an aligned
7*3c8a4c6fSJohannes Doerfertbarrier in the device code to be redundant. This can occur when state
8*3c8a4c6fSJohannes Doerfertupdates that have been synchronized by the barrier were eliminated too.
9*3c8a4c6fSJohannes DoerfertSee also "Co-Designing an OpenMP GPU Runtime and Optimizations for Near-Zero
10*3c8a4c6fSJohannes DoerfertOverhead Execution", IPDPS'22.
11*3c8a4c6fSJohannes Doerfert
12*3c8a4c6fSJohannes DoerfertExample
13*3c8a4c6fSJohannes Doerfert-------
14*3c8a4c6fSJohannes Doerfert
15*3c8a4c6fSJohannes DoerfertThis optimization will trigger for most target regions if state initialization
16*3c8a4c6fSJohannes Doerfertwas removed as a consequence of "state forwarding". This will trigger for
17*3c8a4c6fSJohannes Doerfertinternal runtime functions so it requires enabling verbose remarks with
18*3c8a4c6fSJohannes Doerfert`-openmp-opt-verbose-remarks` (prefixed with `-mllvm` for use with clang).
19*3c8a4c6fSJohannes Doerfert
20*3c8a4c6fSJohannes DoerfertDiagnostic Scope
21*3c8a4c6fSJohannes Doerfert----------------
22*3c8a4c6fSJohannes Doerfert
23*3c8a4c6fSJohannes DoerfertOpenMP optimization remark.
24