[llvm-dev] How to get the function definition of a kmpc_micro call

Dounia Khaldi via llvm-dev llvm-dev at lists.llvm.org
Fri Jul 29 19:09:43 PDT 2016


Hello,

The third argument of the OpenMP runtime call __kmpc_fork_call is the
outlined function resulting from omp parallel directive; this is of type
kmpc_micro. I can get this argument as an LLVM value by using
(callInst->getArgOperand...), but once I get this value, i am stuck in
knowing its class type. An example of this value can be:
void (i32*, i32*, ...)* bitcast (void (i32*, i32*, double**, double**,
double**, double**, double**, double*, i32*, double*, double*, i32**,
double**, i32**, double*)* @.omp_outlined..45 to void (i32*, i32*, ...)*)

I tried bitcast instruction, instruction, function call and did not work.


Is there  a clean way (other than manipulating strings) to get the
defintion of the outlined function from the call  __kmpc_fork_call? By
clean I mean where I can manipulate IR and LLVM methods (and not compare
strings).


Thanks in advance for any help,


-- 
Dounia KHALDI
Research Assistant Professor
Institute for Advanced Computational Science
Stony Brook University
Stony Brook, NY 11794-5250
www.iacs.stonybrook.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160729/0681fd24/attachment.html>


More information about the llvm-dev mailing list