[LLVMdev] Output to a DLL
nicolas at capens.net
Thu Jun 11 14:03:40 PDT 2009
For me writing a DLL would have two purposes: one is to reduce compilation
time (i.e. make it work like a cache), but a second very important goal is
to be able to profile code at the assembly level (using AMD's CodeAnalyst
Fortunately, the code I'm generating consists of only pure functions. So
there's no need for linking symbols.
Anyway, thanks for the ideas. I'll definitely investigate generating
assembly output and using an external compiler and linker for it.
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
Behalf Of Óscar Fuentes
Sent: donderdag 11 juni 2009 17:39
To: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] Output to a DLL
"Nicolas Capens" <nicolas at capens.net> writes:
> 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
Nope. Don't hold your breadth waiting for it. It is far from trivial to
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
If you end hacking a DLL writer, please contribute it to LLVM :-)
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev