Hi!
Here is my first weekly report :-).
This week I set out to:
In general, the following tasks are related to implementing the
init/shutdown/set directives from OpenACC:
- Detail the existing patch regarding the API runtime functions.
- Implement the parsing of the directives in the Fortran front-end first.
- Link the existing API calls to the lowered function from the
{front,middle}-end.
Over the week:
- I've built a script to retrieve and review a patch from the mailing list
(linked with the first week's task).
- I noticed that, actually, the directives can be placed as built-in
functions; regardless, I posted a question on the mailing list about that:
https://gcc.gnu.org/pipermail/gcc/2026-May/248254.html
- I've implemented the parsing process for the init directive in the
simplest possible case (no clauses included).
- I've included the corresponding built-in function in the libgomp library.
- I've started the implementation of the clause parsing specified in the acc
init directive.
- I've recognized that, actually, the "acc routine" directive is missing two
clauses to be supported: the device_type and bind clauses. (This might be a
task included in the last part of my GSoC project: "Add newer features from
OpenACC spec".)
Current status:
- The compiler is able to recognize the "!$acc init" directive, emit the
built-in function call, and print a debug message from the runtime library
(libgomp).
- The current progress works in Fortran only, and I'm waiting for an answer
to a question regarding a specific clause naming case:
https://gcc.gnu.org/pipermail/gcc/2026-May/248262.html
- In the meanwhile I'll implement the directive parsing in the
others front-ends.
For now, I'll focus on the full implementation in Fortran (of the 3 directives)
and then move on to the C and C++ front-ends.
Let me know if the report is too large or I'm being too specific.
Thanks!
Best,
Sebastian Galindo