[Patch] Fortran/openmp: Add support for 2 argument num_teams clause

Jakub Jelinek jakub@redhat.com
Thu Nov 11 15:20:49 GMT 2021


On Thu, Nov 11, 2021 at 04:04:04PM +0100, Tobias Burnus wrote:
> Just the Fortran FE work + Fortranized version for the C tests.
> 
> Tobias
> -----------------
> Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

> Fortran/openmp: Add support for 2 argument num_teams clause
> 
> Fortran part to commit r12-5146-g48d7327f2aaf65
> 
> gcc/fortran/ChangeLog:
> 
> 	* gfortran.h (struct gfc_omp_clauses): Rename num_teams to
> 	num_teams_upper, add num_teams_upper.
> 	* dump-parse-tree.c (show_omp_clauses): Update to handle
> 	lower-bound num_teams clause.
> 	* frontend-passes.c (gfc_code_walker): Likewise
> 	* openmp.c (gfc_free_omp_clauses, gfc_match_omp_clauses,
> 	resolve_omp_clauses): Likewise.
> 	* trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses,
> 	gfc_trans_omp_target): Likewise.
> 
> libgomp/ChangeLog:
> 
> 	* testsuite/libgomp.fortran/teams-1.f90: New test.
> 
> gcc/testsuite/ChangeLog:
> 
> 	* gfortran.dg/gomp/num-teams-1.f90: New test.
> 	* gfortran.dg/gomp/num-teams-2.f90: New test.

Ok, thanks.

Slightly worried about the combined target teams case where C/C++
ensure the expressions used in there are evaluated before target
like:
  TARGET_EXPR <D.2122, fn (4)>;
  TARGET_EXPR <D.2123, fn (3)>;
  #pragma omp target firstprivate(D.2123) firstprivate(D.2122)
    {
      {
        #pragma omp teams num_teams(TARGET_EXPR <D.2123, fn (3)>:TARGET_EXPR <D.2122, fn (4)>)
but what I see in gfc_trans_omp_target seems to instead move the
clause to target, but I admit I haven't tried to eyeball a dump.

	Jakub



More information about the Gcc-patches mailing list