[LLVMdev] Passing a function pointer as parameter to function call?
hxy9243 at gmail.com
Thu Mar 12 15:24:32 PDT 2015
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?
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
>> 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.
>> Kevin Hu
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev