Hi Thomas, thanks for the input.
However, just for consideration: I don't know if project sizes have any (deterministic) impact on how many GSoC slots Google allocates for GCC, and therefore project size (of this in combination with other projects) implicitly affects the chances that your project may or may not get selected. We can't tell...
Yeah but, I mean, my primary intention is contributing (Hopefully get some mentoring from you guys!), if I do not get accepted, I'll contribute anyways and keep asking things if you don't mind... The GSoC is a huge help because I get mentoring somehow, but if isn't the case I'll look forward to contribute aswell.
That does not mean that I'm assuming that if I'm not getting the GSoC proposal approved I'll take your time anyways, I know that you guys are really busy and I would not expect (even with the GSoC project) you to answer quickly and spend a lot of time on me.
Just reading this proposal is a huge work, thanks for that :-)
We're not judging here the reasons either way, but it's very useful to acknowledge this upfront, instead of bad surprises later on.
No worries, it's ok
Task 3. and assuming that making that one work for OpenACC isn't actually more complex than additionally coding up the simpler OpenACC requirements. We shall see.
Good point, I was considering follow like the OpenMP path because the routine directive already maps to some OpenMP construct. But it could be a point to consider if it's more feasible implement OpenACC specific code as I see that the GIMPLE also have some oacc function attribute.
At which point in the compilation pipeline might this be done? Consider the GCC offloading compilation flow.
I would say in the middle end, when we are traversing the clause list in GIMPLE for the directives, we could know if the compilation is happening inside a offload device using the ACCEL_COMPILER variable, then we can drop the mismatching clauses.
Look for a GCC feature, that is available in a generic form, and then expanded in back end-specific ways if supported, or otherwise ignored.
Searching cache strategies with GCC I found https://gcc.gnu.org/projects/prefetch.html which mention the __builtin_prefetch function, it would be useful? In the article also mention that is only implemented by some back-ends.
(..., and we may have to implement support in the GPU back end(s).)
Are you referring to that by chance? Thanks for the input! I'll make the changes. Best, Sebastian
