Hello,

I am trying to improve OpenMP task implementation.
At first I thought I just have to modify ABIs (such as GOMP_task) internal
but I realised I have to change the translation of OpenMP.

My question is how to change the translation of OpenMP.
(I guess I should edit gcc/omp-low.c:create_omp_child_function() but how?)

I checked the current translation by
  $ gcc -O2 -fopenmp -fdump-tree-ompexp omp_fib.c
and realised a problem that limits flexibility of internal implementation.

I want "GOMP_taskexit" ABI which is called just before functions
bound to tasks (*._omp_fn.[0-9]) ends.
Here a task finishes its work.
My task scheduling implementation needs GOMP_taskexit ABI.
For example, when the last child task of a parent task finishes its
work, it tells to the parent that all of children finished their work
so the parent should resume its work.

Tell me how to add "GOMP_taskexit" ABI.

Sho Nakatani

Reply via email to