[PATCH] OpenACC routines in fortran modules
Cesar Philippidis
cesar@codesourcery.com
Fri Jul 1 20:41:00 GMT 2016
It turns out that the acc routine parallelism isn't being recorded in
fortran .mod files. This is a problem because then the ME can't validate
if a routine has compatible parallelism with the call site. This patch
does two things:
1. Encode gang, worker, vector and seq level parallelism in module
files. This introduces a new oacc_function enum, which I ended
up using to record the parallelism of standalone acc routines too.
2. Extends gfc_match_oacc_routine to add acc routine directive support
for intrinsic procedures such as abort.
Is this patch OK for trunk? I included support for intrinsic procedures
because it was necessary with my previous patch which treated all calls
to non-acc routines from within an OpenACC offloaded region as errors.
Now that it has been determined that those patches should be link time
errors, we technically don't need to add acc routine support for
intrinsic procedures. So I can drop that part of the patch if necessary.
Cesar
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fortran-module-routines.diff
Type: text/x-patch
Size: 13869 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20160701/0ab3ebcc/attachment.bin>
More information about the Fortran
mailing list