On Wed, Aug 07, 2024 at 02:08:42PM +0200, Tobias Burnus wrote:
> On Aug 1, 2024, Jakub Jelinek wrote:
> > On Tue, Jul 30, 2024 at 10:51:56PM +0200, Tobias Burnus wrote:
> > > -  char id[sizeof (SSDF_IDENTIFIER) + 1 /* '\0' */ + 32];
> > > +  tree name;
> > > ...
> > I'd just use a single buffer here,
> >    char id[MAX (sizeof (SSDF_IDENTIFIER), sizeof (OMP_SSDF_IDENTIFIER))
> >       + 1 /* \0 */ + 32];
> Done as proposed.
> > Given that the Xeon PHI offloading is gone and fork offloading doesn't seem
> > to be worked on, my preference would be
> > __builtin_omp_is_initial_device () and fold that to 0/1 after IPA, because
> > that will actually help user code too.
> Done.
> > And of course, it would be much better to figure out real nohost fix,
> > because if we need to register a constructor which will just do nothing, it
> > still wastes runtime.
> 
> To be done in a follow-up patch.
> 
> Comments, suggestions, concerns?

As I wrote, I think there should be some option to override the
omp_is_initial_device folding, e.g. for the case where one is compiling some
library code which could be linked either way and so need to avoid folding
omp_is_initial_device because we'll only know at runtime.
But it can certainly wait for incremental change.

> gcc/fortran/ChangeLog:
> 
>       * f95-lang.cc (gfc_init_builtin_functions): Handle
>       DEF_GOMP_BUILTIN_COMPILER)

s/)/./

> @@ -5220,6 +5237,9 @@ gimple_fold_builtin (gimple_stmt_iterator *gsi)
>      case BUILT_IN_ACC_ON_DEVICE:
>        return gimple_fold_builtin_acc_on_device (gsi,
>                                               gimple_call_arg (stmt, 0));
> +    case BUILT_IN_OMP_IS_INITIAL_DEVICE:
> +     return gimple_fold_builtin_omp_is_initial_device (gsi);

The indentation here looks wrong, case is 4 spaces indented and next line
uses tab, should use 6 spaces.

Maybe would be worth testing that omp_is_initial_device is not treated like
a builtin in C++ in custom namespace, or as a static or non-static member
function, or for C or Fortran as nested function.

Otherwise LGTM.

        Jakub

Reply via email to