Hi! On Sat, 15 Nov 2014 13:14:52 +0100, Tom de Vries wrote: > I'm submitting a patch series with initial support for the oacc kernels directive. > > The patch series uses pass_parallelize_loops to implement parallelization of > loops in the oacc kernels region. Committed to gomp-4_0-branch in r222278: commit fd3add90d38d5f1b38c9cb557404542b6383b2b0 Author: tschwinge Date: Tue Apr 21 19:24:57 2015 +0000 Add BUILT_IN_GOACC_KERNELS_INTERNAL ..., a variant of the GOACC_kernels builtin. This variant does not call the function passed as function pointer, and therefore is less of an optimization barrier than the original variant. The purpose of this variant is to allow the introduction of the GOACC_kernels call before splitting off the region body into a function (something that is currently done simultaneously). gcc/ * builtin-attrs.def (DOT_DOT_DOT_r_r_r): Add DEF_ATTR_FOR_STRING. (ATTR_FNSPEC_DOT_DOT_DOT_r_r_r_NOTHROW_LIST): Add DEF_ATTR_TREE_LIST. * omp-builtins.def (BUILT_IN_GOACC_KERNELS_INTERNAL): Add DEF_GOACC_BUILTIN_FNSPEC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@222278 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog.gomp | 6 ++++++ gcc/builtin-attrs.def | 4 ++++ gcc/omp-builtins.def | 5 +++++ 3 files changed, 15 insertions(+) diff --git gcc/ChangeLog.gomp gcc/ChangeLog.gomp index b091dd5..7885189 100644 --- gcc/ChangeLog.gomp +++ gcc/ChangeLog.gomp @@ -1,5 +1,11 @@ 2015-04-21 Tom de Vries + * builtin-attrs.def (DOT_DOT_DOT_r_r_r): Add DEF_ATTR_FOR_STRING. + (ATTR_FNSPEC_DOT_DOT_DOT_r_r_r_NOTHROW_LIST): Add + DEF_ATTR_TREE_LIST. + * omp-builtins.def (BUILT_IN_GOACC_KERNELS_INTERNAL): Add + DEF_GOACC_BUILTIN_FNSPEC. + * builtins.def (DEF_GOACC_BUILTIN_FNSPEC): Define. 2015-03-21 Tom de Vries diff --git gcc/builtin-attrs.def gcc/builtin-attrs.def index 1338644..8eca053 100644 --- gcc/builtin-attrs.def +++ gcc/builtin-attrs.def @@ -64,6 +64,7 @@ DEF_ATTR_FOR_INT (6) DEF_ATTR_TREE_LIST (ATTR_LIST_##ENUM, ATTR_NULL, \ ATTR_##ENUM, ATTR_NULL) DEF_ATTR_FOR_STRING (STR1, "1") +DEF_ATTR_FOR_STRING (DOT_DOT_DOT_r_r_r, "...rrr") #undef DEF_ATTR_FOR_STRING /* Construct a tree for a list of two integers. */ @@ -127,6 +128,9 @@ DEF_ATTR_TREE_LIST (ATTR_PURE_NOTHROW_LIST, ATTR_PURE, \ ATTR_NULL, ATTR_NOTHROW_LIST) DEF_ATTR_TREE_LIST (ATTR_PURE_NOTHROW_LEAF_LIST, ATTR_PURE, \ ATTR_NULL, ATTR_NOTHROW_LEAF_LIST) +DEF_ATTR_TREE_LIST (ATTR_FNSPEC_DOT_DOT_DOT_r_r_r_NOTHROW_LIST, \ + ATTR_FNSPEC, ATTR_LIST_DOT_DOT_DOT_r_r_r, \ + ATTR_NOTHROW_LIST) DEF_ATTR_TREE_LIST (ATTR_NORETURN_NOTHROW_LIST, ATTR_NORETURN, \ ATTR_NULL, ATTR_NOTHROW_LIST) DEF_ATTR_TREE_LIST (ATTR_NORETURN_NOTHROW_LEAF_LIST, ATTR_NORETURN,\ diff --git gcc/omp-builtins.def gcc/omp-builtins.def index 03955c4..cd273f2 100644 --- gcc/omp-builtins.def +++ gcc/omp-builtins.def @@ -39,6 +39,11 @@ DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DATA_END, "GOACC_data_end", DEF_GOACC_BUILTIN (BUILT_IN_GOACC_ENTER_EXIT_DATA, "GOACC_enter_exit_data", BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, ATTR_NOTHROW_LIST) +DEF_GOACC_BUILTIN_FNSPEC (BUILT_IN_GOACC_KERNELS_INTERNAL, + "GOACC_kernels_internal", + BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, + ATTR_FNSPEC_DOT_DOT_DOT_r_r_r_NOTHROW_LIST, + ATTR_NOTHROW_LIST, "...rrr") DEF_GOACC_BUILTIN (BUILT_IN_GOACC_KERNELS, "GOACC_kernels", BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, ATTR_NOTHROW_LIST) Grüße, Thomas