https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97880

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[8/9/10/11 Regression] ICE  |[8/9/10/11 Regression]
                   |in                          |[OpenACC] ICE in
                   |emit_library_call_value_1,  |emit_library_call_value_1,
                   |at calls.c:5298             |at calls.c:5298

--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #2)
> +++ b/gcc/omp-expand.c
> @@ -7561 +7561,2 @@ expand_oacc_for (struct omp_region *region, struct

I think my draft patch is not quite right:

  expand_oacc_for (struct omp_region *region, struct omp_for_data *fd)

has:
  tree iter_type = TREE_TYPE (v);
  tree diff_type = iter_type;
and
  if (fd->collapse > 1 || fd->tiling)
      tree total = expand_oacc_collapse_init (fd, &gsi, counts,
                                              TREE_TYPE (fd->loop.n2), loc);
The called  expand_oacc_collapse_init  also extracts the types.
as does   expand_oacc_collapse_vars  .

At least for some of those loop *_type, the largest  TYPE_PRECISION has to be
used.

Reply via email to