OpenMP pragmas transformation to library calls


Is there any way to find out how does clang transform the OpenMP pragmas to the
corresponding library calls?

I m interested, for example, to find out how this code example:

void task_func(int a, int b)


int main()
int i;

#pragma omp parallel
#pragma omp single
for (i=0; i<10; ++i) {
#pragma omp task
task_func(i, i+1);
#pragma omp taskwait
return 0;

could be written, using direct calls to the LLVM OpenMP library. Does clang provide
a way to see the equivalent code with calls to the library?

I looked around a bit to find out if there is such way, or the equivalent information
on how I would use the library and handcode an application to use direct calls to it,
but I couldn’t find something.

If anyone knows how I could achieve this or point to somewhere I could read something
relevant it would be very nice.