[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