Hi Cesar! On Sun, 6 Jul 2014 16:10:56 -0700, Cesar Philippidis <cesar_philippi...@mentor.com> wrote: > This patch is the first step to enabling parallel reductions in openacc.
Thanks! > As mentioned earlier, this patch isn't complete yet. For starters, parts > of it depends on our internal ptx backend. I've temporarily remapped the > ptx dependencies to their openmp equivalent, but without a proper > openacc runtime this infrastructure won't do much. For the curious: we're working on preparing our implementation of the OpenACC Runtime Library for upstream submission; if only the weeks had more days... > Thomas, is this patch OK for gomp-4_0-branch? I still :-( haven't managed to allocate the time for a proper review, but given this doesn't regress any existing test cases, it's fine to commit, and then we can take it from there. A few minor comments: > 2014-07-06 Cesar Philippidis <ce...@codesourcery.com> > Thomas Schwinge <tho...@codesourcery.com> By the way, on gomp-4_0-branch, ChangeLog snippets go into the respective ChangeLog.gomp files. > --- a/gcc/c/c-parser.c > +++ b/gcc/c/c-parser.c > @@ -11706,7 +11710,8 @@ c_parser_oacc_kernels (location_t loc, c_parser > *parser, char *p_name) > */ > > #define OACC_LOOP_CLAUSE_MASK > \ > - (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_NONE) > + ( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_COLLAPSE) \ Not yet. ;-) > + | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_REDUCTION)) > --- a/gcc/fortran/types.def > +++ b/gcc/fortran/types.def > @@ -86,6 +86,7 @@ DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT) > DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR) > DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT) > DEF_FUNCTION_TYPE_1 (BT_FN_BOOL_INT, BT_BOOL, BT_INT) > +DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT) That one's not actually needed, because... > --- a/gcc/omp-builtins.def > +++ b/gcc/omp-builtins.def > @@ -236,3 +236,6 @@ DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_UPDATE, > "GOMP_target_update", > BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST) > DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TEAMS, "GOMP_teams", > BT_FN_VOID_UINT_UINT, ATTR_NOTHROW_LIST) > + > +DEF_GOMP_BUILTIN (BUILT_IN_OMP_SET_NUM_THREADS, "omp_set_num_threads", > + BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST) ... it's actually »void omp_set_num_threads (int)«, so BT_FN_VOID_INT. As this is only temporary code, please add a FIXME comment here. Hmm, and I wonder, given this is using DEF_*GOMP*_BUILTIN, does this actually do the right thing if -openmp is not specified? Grüße, Thomas
pgpqVGzar3GkH.pgp
Description: PGP signature