Paul-Antoine Arras wrote:
The GOMP_*_static_worksharing_dispatch builtins took no arguments and the
OMPT dispatch callback was missing information about the loop. Pass the loop's
iteration count, start, step, chunk size, and the thread's starting
iteration instead.
LGTM – Thanks for the patch!
Tobias
gcc/ChangeLog:
* builtin-types.def
(BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG): New.
* omp-builtins.def (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING_DISPATCH): Use
BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG.
(BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING_DISPATCH): Likewise.
* omp-expand.cc (expand_omp_for_static_nochunk): Pass niter, start,
incr, chunk size, and istart to the dispatch call.
(expand_omp_for_static_chunk): Likewise.
gcc/fortran/ChangeLog:
* types.def
(BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG): New.
libgomp/ChangeLog:
* config/gcn/teams.c (GOMP_distribute_static_worksharing_dispatch): Add
niter, start, incr, chunk_size, and istart parameters (unused).
* config/nvptx/teams.c (GOMP_distribute_static_worksharing_dispatch):
Likewise.
* libgomp_g.h (GOMP_loop_static_worksharing_dispatch): Update prototype.
(GOMP_distribute_static_worksharing_dispatch): Likewise.
* loop.c (GOMP_loop_static_worksharing_dispatch): Add niter, start,
incr, chunk_size, and istart parameters (unused).
* teams.c (GOMP_distribute_static_worksharing_dispatch): Likewise.
* testsuite/libgomp.c-c++-common/for-static-3.c: Update scan pattern
to match new arguments.
gcc/testsuite/ChangeLog:
* c-c++-common/gomp/for-static-3.c: Update scan pattern to match new
arguments.