This is the status report for the last two weeks (I didn't send a weekly
report last week).
Goals for these two weeks:
- Submit the patch for the init, set, and shutdown directives for
OpenACC support.
Over the last two weeks:
- First Week: I finalized the implementation details of the patch,
focusing first on the Fortran front-end. This approach allows me to
gather feedback on the libgomp implementation and overall front-end
parsing before replicating it in C/C++, preventing the patch from
becoming too large.
- In the patch, I excluded the default_async clause because its
semantics are still pending agreement, as per this comment in
libgomp/oacc-async.c:
/* TODO: we reserve 0 for acc_async_noval before we can clarify
the semantics of "default_async". */
- However, I believe it is best to keep it as is for now, since
the directive expects a number. The default_async directive
could include the acc_{set,get}_default_async runtime functions
and emit a warning if 0 is passed.
- I plan to validate this with my mentors, but I wanted to
propose the implementation first. :-)
- Second Week & Delays: I agreed with my mentors to submit the
patch last weekend. However, I ran into regression test issues due
to a bug in my build script. Later, the tests failed because the
front-end emitted errors at incorrect source locations, preventing
DejaGNU from recognizing the expected errors.
- This caused a one-week delay. I did my best to keep my mentors
in the loop and updated on my progress. The regression tests
were slow, taking about 4 hours per run for every change I made.
I apologize for the delay.
Current Status:
- I've submitted the patch containing the libgomp library
implementation and the Fortran front-end support for initial
validation:
-
https://gcc.gnu.org/pipermail/gcc-patches/2026-June/720523.html
- I'll wait for feedback before sending the follow-up patch
for the C and C++ front-ends.
- I have started reviewing the bind clause implementation (my next
GSoC task) to get a head start and allow more time for the patch
review process.