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