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.