This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[OG9][committed] - [Patch] PR fortran/78260 - OpenACC + OpenMP target fixes - esp. with function-result variables


I have now committed this patch also to the OG9 (openacc-gcc-9) branch.

Thanks for the reviews of the trunk patch!

Tobias

On 9/20/19 5:47 PM, Tobias Burnus wrote:
Hi all,

This patch does two things:

(A) For OpenACC, only, it fixes the is-variable check. That check missed to reject module names (as noted in the PR) but as my testing showed, it also wrongly rejected function-result variables. (i.e. where the return-value variable has the same name as the function). - For the invalid input of the PR, gfortran gave an ICE in the gimplifier.

(B) Using such function-result variables did not work properly. OpenACC used in both cases (see pr78260-2.f90) the function name – and at least one variant failed with an ICE.

OpenMP used the result variable for "target data map" but not for "target update". Additionally "task depend" had the same issue.


Bootstrapped and regtested on x86_64-gnu-linux w/o accelerator.

I intent to build/regtest it also applied to the OG9 (openacc-gnu-9) branch and run the test case with actual nvptx+AMDGCN offloading, but I have not done so, yet.

OK for the trunk?

Tobias

PS: Regtesting fails for continuation_6.f but that's PR fortran/91253 (fails to show a warning when a newer GLIBC is used). And for gfortran.dg/vect/vect-8.f90 fails because 23 instead of 22 loops get vectorized - probably someone (richi?) didn't update the expected value.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]