I know that I am late in the game, however, I have some comments + questions to this patch, i.e. to
r17-2288-gab0dd7d5e16fcd openmp: Add OMPT entry points for worksharing-loop, single, and masked constructs https://gcc.gnu.org/r17-2288-gab0dd7d5e16fcd First: This commit addsGOMP_masked_end such that: #pragma omp masked filter(2) D.3135 = __builtin_GOMP_has_masked_thread_num (2); if (D.3135 != 0) goto <D.3136>; else goto <D.3134>; <D.3136>: ... __builtin_GOMP_masked_end (); // only with -fopenmp-ompt <D.3134>: #pragma omp return(nowait) Thus, it call num_threads() times the thread_num function and only once (for the filtered thread) the 'masked_end' function. [That's fine.] Now to my question: How can the OMPT runtime distinguish whether there is a single masked/master call vs. a begin/end call? For one version, one has to call the tool with: ompt_scope_beginend while for the other version, one needs: ompt_scope_begin and ompt_scope_end but, currently, there is no way to distinguish the two. Thus: Can you add a GOMP_masked_begin function in addition? * * * Regarding the documentation (current version at ...) https://gcc.gnu.org/onlinedocs/gcc/OpenMP-and-OpenACC-Options.html#index-fopenmp-ompt First, I find the second part/clause of the first sentence in -fopenmp-ompt-detail in particular confusing: Like @option{-fopenmp-ompt}, and additionally emit calls into libgomp, enabling OMPT dispatch callbacks that get called at the beginning of each workshare chunk for statically scheduled @code{for} and @code{distribute}. Requires @option{-fopenmp}. Maybe: "On top of -fopenmp-ompt, emit additional calls into libgomp," as minimal change - or even smaller change: "Like -fopenmp-ompt, emit additional calls into libgomp," However, I wonder whether the whole should be completely differently worded; for instance: -fopenmp-ompt For some OpenMP constructs, generate calls before and after the region instead of only on region entry. This improves the OMPT tracing at expense of additional calls. In particular, the additional calls will be added for static worksharing loops, static worksharing @code{dispatch}, and the @code{single}, @code{masked}, and @code{master} construct. Requires @option{-fopenmp}. -fopenmp-ompt-details Add additional calls into the OpenMP runtime that might affect the performance but further improves OMPT tracing. In particular, dispatch callbacks are generated at the beginning of each workshare chunk for static worksharing loops and static worksharing @code{dispatch}. This option implies @option{-fopenmp-ompt}. Requires @option{-fopenmp}. What do you think? Tobias
