<div dir="ltr"><div><br class="gmail-Apple-interchange-newline">Thanks Arpith for this pointer but it did not contain what I was looking for.</div><div><br></div><div>However, I solved my issue by finding that the BitCastInst used when outlining OpenMP parallel region offers a method for retrieving the original value within the bitcast via stripPointerCasts().</div><div><br></div><div>So what I did to retrieve <span style="font-size:12.8px">omp_outlined..45 is:</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">//bitcast is the third argument of __kmpc_fork_call</span></div><div><div><span style="font-size:12.8px"><span style="white-space:pre">V</span>alue *vcall = callInst->getArgOperand(2);</span></div><div><span style="font-size:12.8px">//This will return the outlined function in </span><span style="font-size:12.8px">__kmpc_fork_call</span></div><div><span style="font-size:12.8px">Function *f = dyn_cast<Function>(vcall->stripPointerCasts());</span></div></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">f->getName returns "</span>.omp_outlined..45<span style="font-size:12.8px">"  </span><span style="font-size:12.8px">So this worked.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Thanks again,</span></div><div><span style="font-size:12.8px">Dounia</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 30, 2016 at 6:47 PM, Arpith C Jacob <span dir="ltr"><<a href="mailto:acjacob@us.ibm.com" target="_blank">acjacob@us.ibm.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><p>Hi Dounia,<br><br>I work on the NVPTX OpenMP codegen support and we don't use fork() but I can point you to where you may be able to find this information.<br><br>In the clang sources, have a look at: lib/CodeGen/CGOpenMPRuntime.cpp and the function createRuntimeFunction where the call to __kmpc_fork_call() is created.  The type of the outlined function can be had through the function: getKmpc_MicroPointerTy().  Is this what you are looking for?<br><br>Regards,<br>Arpith<br><br><tt>"Openmp-dev" <<a href="mailto:openmp-dev-bounces@lists.llvm.org" target="_blank">openmp-dev-bounces@lists.llvm.org</a>> wrote on 07/30/2016 12:38:09 PM:<br><br>> From: via Openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>></tt><br><tt>> To: Dounia Khaldi <<a href="mailto:khaldi.dounia@gmail.com" target="_blank">khaldi.dounia@gmail.com</a>>, <a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a></tt><br><tt>> Cc: <a href="mailto:llvmdev@cs.uiuc.edu" target="_blank">llvmdev@cs.uiuc.edu</a></tt><br><tt>> Date: 07/30/2016 12:38 PM</tt><br><tt>> Subject: Re: [Openmp-dev] [llvm-dev] How to get the function <br>> definition of a kmpc_micro call</tt><br><tt>> Sent by: "Openmp-dev" <<a href="mailto:openmp-dev-bounces@lists.llvm.org" target="_blank">openmp-dev-bounces@lists.llvm.org</a>></tt></p><div><div class="h5"><br><tt>> <br>> Adding openmp-dev list.</tt><br><tt>> <br>> 30 июля 2016 г., в 5:09, Dounia Khaldi via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>> > написал(а):<br></tt><br><tt>> Hello,</tt><br><tt>> <br>> The third argument of the OpenMP runtime call __kmpc_fork_call is <br>> the outlined function resulting from omp parallel directive; this is<br>> of type kmpc_micro. I can get this argument as an LLVM value by <br>> using (callInst->getArgOperand...), but once I get this value, i am <br>> stuck in knowing its class type. An example of this value can be: </tt><br><tt>> void (i32*, i32*, ...)* bitcast (void (i32*, i32*, double**, <br>> double**, double**, double**, double**, double*, i32*, double*, <br>> double*, i32**, double**, i32**, double*)* @.omp_outlined..45 to <br>> void (i32*, i32*, ...)*)</tt><br><tt>> <br>> I tried bitcast instruction, instruction, function call and did not work.</tt><br><tt>> <br>> Is there  a clean way (other than manipulating strings) to get the <br>> defintion of the outlined function from the call  __kmpc_fork_call? <br>> By clean I mean where I can manipulate IR and LLVM methods (and not <br>> compare strings). </tt><br><tt>> <br>> Thanks in advance for any help,</tt><br><tt>> <br>> <br>> -- </tt><br><tt>> Dounia KHALDI</tt><br><tt>> Research Assistant Professor</tt><br><tt>> Institute for Advanced Computational Science</tt><br><tt>> Stony Brook University</tt><br><tt>> Stony Brook, NY 11794-5250</tt><br><tt>> <a href="http://www.iacs.stonybrook.edu" target="_blank">www.iacs.stonybrook.edu</a></tt><br></div></div><tt><div><div class="h5">> <br>> _______________________________________________<br>> LLVM Developers mailing list<br>> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br></div></div>> _______________________________________________<br>> Openmp-dev mailing list<br>> <a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a><br>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a><br></tt><br>
<p></p></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><span style="font-size:small">Dounia KHALDI</span><br></div><div dir="ltr"><span style="font-size:small">Research Assistant Professor</span><br style="font-size:small"><div style="font-size:12.8px"><font color="#000000">Institute for Advanced Computational Science</font></div><div style="font-size:12.8px"><font color="#000000"><span style="font-size:12.8px">Stony Brook University</span><br></font></div><div style="font-size:12.8px"><font color="#000000">Stony Brook, NY 11794-5250</font></div><div style="font-size:12.8px"><font color="#000000" style="color:rgb(17,85,204);font-size:12.8px"><a href="http://www.iacs.stonybrook.edu/" style="color:rgb(17,85,204);font-size:12.8px" target="_blank">www.iacs.stonybrook.edu</a></font><br></div><div><br></div></div></div></div></div></div></div></div></div></div>
</div>