dynamic linkage for jit

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