[LLVMdev] function pointer from name?

Alexander Popolitov popolit at gmail.com
Sun May 4 10:37:07 PDT 2014


Well, the only place I need to get a variable pointer (pointer to a 
symbol) from its name, is in intern function.
And symbols are implemented as Python classes, so to LLVM IR they appear 
as PyObjects, or, more precisely, as i8*'s.
But all the elementary functions, that operate on symbols (e.g. cons) 
are written with the in mind.

Then, for functions I could have done just that: write a wrapper around 
get_function_by_name method of Module object.
However, this will give me PyObject*, not a pointer to an actual 
function, which I suppose should be fed to call instruction.

Then, maybe, question can be rephrased as: "how to obtain function 
pointer from Function llvmpy's object"?

On 05/04/2014 05:24 PM, Alexander Potapenko wrote:
>
> Don't you have the same problem with other atoms, e.g. variable names?
> This sounds like something that should be implemented in the 
> language's runtime library.
>
> On May 4, 2014 7:15 PM, "Alexander Popolitov" <popolit at gmail.com 
> <mailto:popolit at gmail.com>> wrote:
>
>     Hi everyone!
>
>     I'm trying to implement lisp's funcall function, which roughly
>     calls a function, name of which
>     is known only at runtime.
>     I know that LLVM IR 'call' directive can accept function pointers,
>     so the question is,
>     is there a simple way to get a function pointer from a function
>     name (represented as e.g. i8*)?
>
>     BTW, I'm using llvmpy to generate LLVM IR, so if there is a way to
>     do this using llvmpy tools, it would also do.
>
>     Yours sincerely,
>     Alexandr Popolitov
>     _______________________________________________
>     LLVM Developers mailing list
>     LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu>
>     http://llvm.cs.uiuc.edu
>     http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140504/75522217/attachment.html>


More information about the llvm-dev mailing list