[LLVMdev] Passing a function pointer as parameter to function call?
Kevin Hu
hxy9243 at gmail.com
Thu Mar 12 15:24:32 PDT 2015
Hi David,
Thanks very much.
I tried and the IR it produces is:
%call = call i32 @atexit(void ()* foo)
The problem is this still doesn't give me any clues how to produce the code
inside my LLVM pass. How do I get the pointer to this foo function?
Any hints?
Thank you.
Kevin Hu
On Thu, Mar 12, 2015 at 6:09 PM, David Blaikie <dblaikie at gmail.com> wrote:
> Easiest thing to do would be to write the equivalent C code, throw it
> through Clang, and look at the IR it produces.
>
> On Thu, Mar 12, 2015 at 3:00 PM, Kevin Hu <hxy9243 at gmail.com> wrote:
>
>> Dear all,
>>
>>
>> I'm writing an LLVM pass, and I want to insert a call instruction that
>> takes a function pointer as a parameter. The effect would be the same as
>> following:
>>
>> atexit(foo);
>>
>> Where foo is a function I insert with M.getOrInsertFunction(), which in
>> LLVM is a Function class.
>>
>> I searched for a while and did not come up with a satisfying answer.
>> Should I create a Value class of pointer type, or a Int64Ty for a pointer?
>> How do I get the pointer to the function I create? I also tried passing foo
>> as Function* in LLVM as parameter to create CallInst directly, and I
>> doesn't seem to work.
>>
>> Any hints and enlightenment is appreciated. Many thanks.
>>
>>
>> Regards,
>> Yours,
>> Kevin Hu
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>
--
Yours,
X. Hu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150312/4377cf4e/attachment.html>
More information about the llvm-dev
mailing list