jit DLLs

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 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

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. :slight_smile: