This is an archive of the discontinued LLVM Phabricator instance.

[OpenMP] libomp: add check of task function pointer for NULL
ClosedPublic

Authored by AndreyChurbanov on Oct 18 2021, 9:32 AM.

Details

Summary

This patch allows to simplify compiler implementation on "taskwait nowait" construct.
The "taskwait nowait" is semantically equivalent to the empty task.
Instead of creating an empty routine as a task entry, compiler can just send NULL pointer to the runtime.
Then the runtime will make all the work with dependences and return because of the absent task routine.

Diff Detail

Event Timeline

AndreyChurbanov requested review of this revision.Oct 18 2021, 9:32 AM
This revision is now accepted and ready to land.Oct 18 2021, 9:40 AM
This revision was landed with ongoing or failed builds.Oct 18 2021, 9:48 AM
This revision was automatically updated to reflect the committed changes.

I already know, that OMPD folks will not be happy about this implementation. Nevertheless, it is a valid and better implementation than before.

Regarding OMPT implementation: since you are not calling into the application anymore, this case should now really use ompt_taskwait_complete rather than switching to the taskwait task and back.