You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Simon has suggested that the problem of dependence analysis (between files being or to be processed by PSyclone) could be much simplified if PSyclone had a mode where it constructs the PSyIR of multiple source files in memory. At the moment, PSyclone processes a single source file at a time although does have functionality for resolving symbols imported from containers in other source files. As soon as we start to make heavy use of the latter functionality, it will probably be quicker to first generate the PSyIR for all files and then process them (to save multiple rounds of parsing).
The "one file at a time" model works fine so long as transformations are restricted to only affect the file being processed. However, when adding ACC ROUTINE to a subroutine, any data accessed via USE statements must also be marked-up (so as to make it available on the GPU). This means that a transformation potentially affects multiple files and we have no way of 'accumulating' transformations to other files. In this specific case though I think there are other, better solutions - we could for instance module inline the offending subroutine and then transform it so that all data is passed by argument.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Simon has suggested that the problem of dependence analysis (between files being or to be processed by PSyclone) could be much simplified if PSyclone had a mode where it constructs the PSyIR of multiple source files in memory. At the moment, PSyclone processes a single source file at a time although does have functionality for resolving symbols imported from containers in other source files. As soon as we start to make heavy use of the latter functionality, it will probably be quicker to first generate the PSyIR for all files and then process them (to save multiple rounds of parsing).
The "one file at a time" model works fine so long as transformations are restricted to only affect the file being processed. However, when adding
ACC ROUTINE
to a subroutine, any data accessed viaUSE
statements must also be marked-up (so as to make it available on the GPU). This means that a transformation potentially affects multiple files and we have no way of 'accumulating' transformations to other files. In this specific case though I think there are other, better solutions - we could for instance module inline the offending subroutine and then transform it so that all data is passed by argument.Beta Was this translation helpful? Give feedback.
All reactions