[LLVMdev] dynamic linkage for jit

charles quarra charllsnotieneningunputocorreo at gmail.com
Mon Jul 30 15:24:58 PDT 2012


> De: Duncan Sands <baldrick at free.fr>
>Para:
>Enviado: miƩrcoles, 11 de julio de 2012 9:40
>Asunto: Re: [LLVMdev] dynamic linkage for jit
>
>Hi Charllls, I didn't really get it.  Are you saying that you would
execute some
>functions using the JIT then, later, those functions will be modified and
thus
>need to be re-jitted?
>
>Ciao, Duncan.

Hi Duncan,

that is exactly it. My hope is to keep the need for rebuild isolated to the
individual
modules where the modifications occur, and relink appropiately.

I've discussed this with people that have worked on llvm frontends before,
and they
 suggest that this would require keeping copies of all the modules around,
rebuild
the modules that changed, and then relink everything into a single static
fat module
 that the JIT can use, which is btw my default plan to implement,
unless/until i learn
 a better alternative

the main drawback of that would be, i think, to have to relink all
dependencies into the
 fat module everytime one of the modules change, since as far as i know,
you cannot
 remove symbols already linked in a module and relink a new version

Another question that is more inmediately relevant to me (since it
potentially affects
or invalidates my current implementation plan) is about the transitivity of
the
mappings between symbols of different modules.

Let me explain with a minimal example;

say module A implements symbols used in module B, so B is built and when
the
Call/Invoke instructions are inserted in B for the A symbols, we need to
add Global
mappings for those symbols in A manually and use those for the instruction
creation.
 (this is my understand of how mappings for calls between modules is done).

So, now i want to JIT code in B that uses A, so i need to link both B and A
into the fat
static runtime jit module. Will the mappings (the A symbols used in B) will
be preserved
when the modules are link to the runtime JIT module?


btw: had to swap email accounts because my emails where bouncing from some
llvmdev
users, but the mailing list was not reporting it to me
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120730/1431742c/attachment.html>


More information about the llvm-dev mailing list