Are JIT DLLs supported? The idea is to use llvm to put performance sensitive code into a DLL that a Windows app can then use. This would build the performance sensitive code on the target machine making it possible to exploit CPU specific x86 vector instructions. The code that calls fn's in the DLL should, ideally, be unaware that a llvm JIT is being used. -- Øyvind Harboe http://www.zylin.com/zy1000.html ARM7 ARM9 XScale Cortex JTAG debugger and flash programmer
Øyvind Harboe wrote:> Are JIT DLLs supported? > > The idea is to use llvm to put performance sensitive code into > a DLL that a Windows app can then use. > > This would build the performance sensitive code on the target > machine making it possible to exploit CPU specific x86 > vector instructions. >You can ship .bc files, then use LLC to compile it to native code, and an assembler+linker to get a DLL. This has nothing to do with JIT, you are building the DLL once on the target machine, right? Best regards, --Edwin
Øyvind Harboe wrote:> Are JIT DLLs supported? > > The idea is to use llvm to put performance sensitive code into > a DLL that a Windows app can then use. > > This would build the performance sensitive code on the target > machine making it possible to exploit CPU specific x86 > vector instructions. > > The code that calls fn's in the DLL should, ideally, be unaware > that a llvm JIT is being used.because of the size of the LLVM libraries, it would usually be preferable to pre-build versions of the performance sensitive code for all target CPUs in separate dlls and use CPU identification code (similar to what the LLVM JIT does) to resolve which dll to load at run time. m.
> The idea is to use llvm to put performance sensitive code into > a DLL that a Windows app can then use. > > This would build the performance sensitive code on the target > machine making it possible to exploit CPU specific x86 > vector instructions.Isn't this what Apple does with OpenGL, except that they skip the DLL step? http://lists.cs.uiuc.edu/pipermail/llvmdev/2006-August/006492.html http://jroller.com/murphee/entry/benefits_of_llvm_as_common
On Tue, Jun 24, 2008 at 2:57 PM, Holger Schurig <hs4233 at mail.mn-solutions.de> wrote:>> The idea is to use llvm to put performance sensitive code into >> a DLL that a Windows app can then use. >> >> This would build the performance sensitive code on the target >> machine making it possible to exploit CPU specific x86 >> vector instructions. > > Isn't this what Apple does with OpenGL, except that they skip the > DLL step?I don't know. My only hope of spending time @ work on llvm lies in being able to use in as a transparent fashion as possible to the existing application. :-) -- Øyvind Harboe http://www.zylin.com/zy1000.html ARM7 ARM9 XScale Cortex JTAG debugger and flash programmer