https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102330
Thomas Schwinge <tschwinge at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jules at gcc dot gnu.org, | |tschwinge at gcc dot gnu.org --- Comment #5 from Thomas Schwinge <tschwinge at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #4) > Just > program p > !$omp taskloop lastprivate(i) > do i = 1, 8 > end do > !$acc parallel loop > do i = 1, 8 > end do > end > is enough to reproduce it. Confirmed. With '-fopt-info-omp-all --param=openacc-privatization=noisy' we're told: 'note: variable ‘i’ in ‘private’ clause is candidate for adjusting OpenACC privatization level', and... (In reply to Richard Biener from comment #1) > Confirmed. omp expansion seems to introudce this non-gimple code and likely > also makes 'i' not a register (for OACC): > > .data_dep.5D.4044 = .UNIQUE (OACC_PRIVATE, .data_dep.5D.4044, -1, > &iD.4045); > > but > > iD.4045 = 1 + .offset.9D.4049; > > and > > iD.4045 = 1 + 8; > > (which is also unfolded) ... indeed the ICE goes away if I force-disable 'OACC_PRIVATE' commit 29a2f51806c5b30e17a8d0e9ba7915a3c53c34ff "openacc: Add support for gang local storage allocation in shared memory [PR90115]" as follows: --- gcc/omp-low.c +++ gcc/omp-low.c @@ -10494,6 +10494,8 @@ static bool oacc_privatization_candidate_p (const location_t loc, const tree c, const tree decl) { + return false; Hmm. Julian CCed.