[LLVMdev] Output to a DLL

Olivier Meurant meurant.olivier at gmail.com
Thu Jun 11 09:10:36 PDT 2009

When you say "spit bitecode from the JIT the first time, load it on
subsequent sessions" :
- do you want to write the IR in a file via BitcodeWriter and re-read it via
BitcodeReader ? (you will pay the cost of native code emission on each load
- do you want to write the native code ? In that case, how do you retrieve
the size of the buffer prepared by the "getPointerToFunction" method ? Is it
safe ? I was wondering on how memory access to global variable will come
back in this case ?


On Thu, Jun 11, 2009 at 5:39 PM, Óscar Fuentes <ofv at wanadoo.es> wrote:

> "Nicolas Capens" <nicolas at capens.net> writes:
> Hello Nicolas.
> > I'd like to be able to write JIT-compiled code to a Windows DLL. I have
> no
> > idea where to start though. Does LLVM already offer some support for
> > this?
> Nope. Don't hold your breadth waiting for it. It is far from trivial to
> do.
> I don't know your requirements, but mine is to avoid compilation every
> time the hosting application starts.
> I was thinking on:
>  1. Compile and spit bitecode from the JIT the first time, load it on
>  subsequent sessions. Seems doable. Doesn't work if your goal is
>  using code on non-LLVM-aware applications, but if you want to do this
>  the JIT is of no use anyways.
>  2. Act as a traditional compiler and generate a shared library via
>  llvmc + assembler + linker. Tricky, even more so on Windows. Resolving
>  symbols is not as easy as is on case 1.
> > Or would it be straightforward to write my own DLL writer (no advanced
> > features needed)? Or maybe I could use an external linker? All help
> highly
> > appreciated!
> If you end hacking a DLL writer, please contribute it to LLVM :-)
> --
> Óscar
> _______________________________________________
> LLVM Developers mailing list
> 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/20090611/1b98d8ec/attachment.html>

More information about the llvm-dev mailing list