[Openmp-dev] Some question about OpenMP outlining and the source code in LLVM

Yu-Wen Lai via Openmp-dev openmp-dev at lists.llvm.org
Tue Oct 16 02:04:04 PDT 2018


 Dear Developers,

I am researching Clang and LLVM OpenMP Runtime Library, and I try to
research into the topic: How does OpenMP outline functions in Clang , and I
could try to implement the new OpenMP directive and outlined functions to
achive the functional requirement that I purpoed.

For instance aboult OpenMP outlining,
    void foo()
    {
    #pragma omp parallel
        {
            ... do something ...
        }
    }
is converted into
    static void outlinedFooBody()
    {
        ... do something ...
    }
    void foo()
    {
        __OMP_runtime_fork(outlinedFooBody, (void*)0);
    }

I have some questions about the topic,
    1. How could I know what OpenMP actually done when OpenMP outlines the
functions? It seems there are no tools to observe that except for observing
LLVM-IR or assembly code.
    2. Which is the OpenMP outlining actions actually done, in Clang or
LLVM OpenMP runtime library?
    3. Is there any useful tools to dump the outlining information for
dubugging or observing?

Sorry about there are so many questions above. I stuck in here for several
months, and still don't know how OpenMP oulining fuctions, how the source
code of Clang and OpenMP runtime library actually does about outlining.

Thank you for your time to read the mail.

Looking forward to your feedback.

Respectfully yours,

Yu-Wen, the student from Chung-Cheng University of Taiwan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20181016/e94941c7/attachment.html>


More information about the Openmp-dev mailing list