[PATCH, OpenACC] Enable GOMP_MAP_FIRSTPRIVATE_INT for OpenACC
Jakub Jelinek
jakub@redhat.com
Tue Dec 18 12:47:00 GMT 2018
On Thu, Dec 13, 2018 at 03:44:25PM +0000, Julian Brown wrote:
> +static tree
> +convert_to_firstprivate_int (tree var, gimple_seq *gs)
> +{
> + tree type = TREE_TYPE (var), new_type = NULL_TREE;
> + tree tmp = NULL_TREE;
> +
> + if (omp_is_reference (var))
> + type = TREE_TYPE (type);
> +
> + if (INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type))
> + {
> + if (omp_is_reference (var))
> + {
> + tmp = create_tmp_var (type);
> + gimplify_assign (tmp, build_simple_mem_ref (var), gs);
> + var = tmp;
> + }
> +
> + return fold_convert (pointer_sized_int_node, var);
> + }
> +
> + gcc_assert (tree_to_uhwi (TYPE_SIZE (type)) <= POINTER_SIZE);
> +
> + new_type = lang_hooks.types.type_for_size (tree_to_uhwi (TYPE_SIZE (type)),
> + true);
> +
> + if (omp_is_reference (var))
> + {
> + tmp = create_tmp_var (type);
> + gimplify_assign (tmp, build_simple_mem_ref (var), gs);
> + var = tmp;
> + }
Why are you duplicating this if? Can't you just do it before the
if (INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type))
test once, even better in the same if as you do type = TREE_TYPE (type); ?
Otherwise ok from me, but please check with Thomas if he is ok with it too.
Jakub
More information about the Gcc-patches
mailing list