On Wed, May 18, 2022 at 9:35 AM Jakub Jelinek <ja...@redhat.com> wrote:
> On Mon, May 16, 2022 at 07:35:17PM +0200, Mohamed Atef via Gcc-patches > wrote: > > libgomp/ChangeLog > > > > 2022-05-15 Mohamed Atef <mohamedatef1...@gmail.com> > > > > *config/darwin/plugin-suffix.h (SONAME_SUFFIX): Remove ()s. > > *config/hpux/plugin-suffix.h (SONAME_SUFFIX): Remove ()s. > > *config/posix/plugin-suffix.h (SONAME_SUFFIX): Remove ()s. > > *configure: Regenerate. > > *Makefile.am (toolexeclib_LTLIBRARIES): Add libgompd.la. > > (libgompd_la_LDFLAGS, libgompd_la_DEPENDENCIES, > > libgompd_la_LINK,libgompd_la_SOURCES, libgompd_version_dep, > > libgompd_version_script, libgompd.ver-sun, libgompd.ver, > > libgompd_version_info): New. > > *Makefile.in: Regenerate. > > *aclocal.m4: Regenerate. > > *env.c: Include ompd-support.h. > > (parse_debug): New function. > > (gompd_enabled): New Variable. > > (initialize_env): Call gompd_load. > > (initialize_env): Call parse_debug. > > *team.c: Include ompd-support.h. > > (gomp_team_start): Call ompd_bp_parallel_begin. > > (gomp_team_end): Call ompd_bp_parallel_end. > > (gomp_thread_start): Call ompd_bp_thread_start. > > *libgomp.map: ADD OMP_5.0.3 symbol versions. > > Add rather than ADD > > > *libgompd.map: New. > > *omp-tools.h.in: New. > > *ompd-types.h.in: New. > > *ompd-support.h: New. > > *ompd-support.c: New. > > *ompd-helper.h: New. > > *ompd-helper.c: New. > > *ompd-init.c: New. > > *ompd-icv.c: New. > > *configure.ac (AC_CONFIG_FILES): Add omp-tools.h and ompd-types.h. > > Almost ok, minor comments below. > As I said earlier, as this is just partial implementation of the > OMPD, I think it would be better to commit it to a git branch but > already in the upstream repository, say devel/omp/ompd branch. > > Do you have a FSF Copyright assignment on file or do you want to > submit this under DCO (https://gcc.gnu.org/dco.html)? If the latter, should I remove the header comment? I mean this part " Copyright (C) 2022 Free Software Foundation, Inc. Contributed by Mohamed Atef <mohamedatef1...@gmail.com>. " In fact, I don't know the difference, so which is better for the community? > If the latter, > we need Signed-off-by line in your final patch mail and also in the > commit message. > The commit message should include a one line summary, then > empty line, then explanation what the patch is, followed by properly > formatted ChangeLog entry (the above is badly mangled by your mailer), > there should be 2 spaces around the name etc. and after the ChangeLog > entry the Signed-of-by line if you use DCO. > More details in https://gcc.gnu.org/gitwrite.html > In Authenticated access there is a link to a form to request write > access to the repository, please file it and write me as the sponsor. > Then follow the rest of gitwrite to e.g. do > contrib/gcc-git-customization.sh > and then you can git gcc-verify to verify whether the ChangeLog entry in > your commit log is ok before you push it. > > > --- /dev/null > > +++ b/libgomp/libgompd.map > > @@ -0,0 +1,23 @@ > > +OMPD_5.1 { > > Shouldn't this be OMPD_5.0 ? > The functions were already in OpenMP 5.0, weren't they? > > > + global: > > + ompd_initialize; > > + ompd_get_api_version; > > + ompd_get_version_string; > > + ompd_process_initialize; > > + ompd_device_initialize; > > + ompd_rel_address_space_handle; > > + ompd_finalize; > > + ompd_enumerate_icvs; > > + ompd_get_icv_from_scope; > > + ompd_get_icv_string_from_scope; > > + ompd_get_thread_handle; > > + ompd_get_thread_in_parallel; > > + ompd_rel_thread_handle; > > + ompd_thread_handle_compare; > > + ompd_get_thread_id; > > + ompd_get_device_from_thread; > > + ompd_bp_thread_begin; > > + ompd_bp_thread_end; > > Why is ompd_bp_thread_{begin,end} here? I thought they were > in libgomp.so.*, not in libgompd.so.* > > > + local: > > + *; > > +}; > > > + /* NO cuda for now. */ > > We support other kinds of offloading, so better just say > /* No offloading support for now. */ > or so. > > > + if (device == OMPD_DEVICE_KIND_HOST) > > + { > > + switch (icv_id) > > + { > > + case gompd_icv_cancellation_var: > > + return > > + gompd_get_cancellation ((ompd_address_space_handle_t *) > handle, > > + icv_value); > > + case gompd_icv_max_task_priority_var: > > + return gompd_get_max_task_priority > ((ompd_address_space_handle_t *) > > + handle, icv_value); > > + case gompd_icv_stacksize_var: > > + return gompd_get_stacksize ((ompd_address_space_handle_t *) > handle, > > + icv_value); > > You use that overly long (ompd_address_space_handle_t *) handle in all the > spots and it causes various formatting issues. Wouldn't it be better > to add some temporary variable above the switch > ompd_address_space_handle_t *whatever > = (ompd_address_space_handle_t *) handle; > (for some good choice of name) and then just use it instead of > (ompd_address_space_handle_t *) handle which would allow always writing > return gompd_whatever (whatever, icv_value); > and not the uglier return with call on the next line, or even worse ( on > a different line from the function name? > > > +ompd_rc_t > > +ompd_finalize () > > Please use (void) instead of () > > > +void > > +gompd_load () > > Likewise. > > > +void __attribute__ ((noipa)) > > +ompd_dll_locations_valid () > > Likewise (and several times more). > > Fixed. > Jakub > >