Hi! On Wed, 15 Jun 2016 20:12:15 -0700, Cesar Philippidis wrote: > [...], this patch updates the way that > the fortran FE handles the 'acc routine' attribute in modules. Before, > it only recorded that a function was marked as an acc routine. (By means of 'OMP_DECLARE_TARGET', that is.) > With this > patch, it now records the level of parallelism the routine has. This is > necessary for the middle end to validate compatible parallelism between > the loop calling the routine and the routine itself. This patch has seen a bunch of further revisions later on. I've now singled out the changes that are actually relevant for the feature under discussion here, and added test cases that actually test what they describe to be testing... ;-) The code changes now are actually very simple. The "problem" is that we're incrementing the Fortran module version, 'MOD_VERSION', which breaks binary compatibility with Fortran module files created with earlier versions of GCC, which is something that is to be avoided, as I've heard. Or, is it not that bad actually? We might be able to resolve this by encoding individual "bits" for the 'gang'/'worker'/'vector'/'seq' clauses, instead of using the values for 'enum oacc_routine_lop' via 'oacc_routine_lop_types'. The earlier Fortran module files would simply not have these bits set, and could thus still be read (given 'MOD_VERSION' not incremented). Would that be a solution to this issue? (You'd then get a parse error when trying to use with an older version of GCC any Fortran module files created with a newer version, which seems OK?) Or, an idea I just had (but not yet verified), guard the stream-out and stream-in of 'attr->oacc_routine_lop' to just happen if '-fopenacc' is active (or some such), which thus won't affect that majority of users. Would that be a solution to this issue? See attached, any comments? And, can this still go into trunk now? (Rationale: I'd like to later fix this issue on GCC release branches also, because this is quite a limitation to usage. This will thus again bring up the 'MOD_VERSION' issue.) Grüße Thomas