[llvm-dev] Orc/MCJIT: Relocations vs pointers to functions

Paweł Bylica via llvm-dev llvm-dev at lists.llvm.org
Wed May 11 06:47:01 PDT 2016


Hi LLVM, Lang.

I'm looking for a advice here. And I truly understand very little what the
relocations are and how they work.

The problem I want to solve is the case where a jitted code has to call
back the host application to query additional data. I can think of 3
possible solutions:

   1. Use built-in relocation resolver (in default memory manager?) and
   allow the JIT to find the callback function by name. The host application
   needs to contain symbols that the JIT will search for. You can have only
   single implementation of them. The JIT will need to search in the set of
   all symbols in the executable.
   2. Pass addresses of callback functions as pointers to functions to a
   jitted function. The generated code should use pointer to functions instead
   of predefined function names in calls.
   3. Create you own Memory Manager that will provide addresses to callback
   functions. Because the set of callback functions is known upfront and quite
   small that seems to be better than 1.

Can you help me to evaluate the solutions?

- Paweł
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160511/6b819ae4/attachment.html>


More information about the llvm-dev mailing list