[LLVMdev] LLVM JIT Questions

Kaylor, Andrew andrew.kaylor at intel.com
Tue Apr 23 10:39:40 PDT 2013


Hi Dmitri,

Regarding your first question, if you can use the MCJIT engine a caching mechanism will be available very soon.  I'm preparing to commit a patch today to add this capability.  I'm not sure what it would take to get something similar working with the older JIT engine.  I expect it would take a fair amount of work because the older JIT engine isn't designed around object loading as the MCJIT engine is.

Regarding your second question, there might be more than one way to do this, but once you have an llvm::Function (but before you JIT the code) you should be able to use llvm::Function::setCallingConv().

-Andy

-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Dmitri Rubinstein
Sent: Tuesday, April 23, 2013 5:25 AM
To: LLVM Dev
Subject: [LLVMdev] LLVM JIT Questions

Hi all,

For my current project I need a couple of informations about JIT. I seen similar questions already, but the answers are a bit older and I hope somebody can provide me a recent information.

1. In my project I frequently construct LLVM IR, compile it and execute with JIT. Because the constructed IR is often the same (but can vary depending on input data) I would like to cache produced machine code on the disk. There is no JIT API for dumping and loading of compiled code.

Are there any plans to add this feature in the near future ?

How complex would it be to implement this for somebody who has only experience with LLVM code generation, but no deep knowledge of JIT internals ?

2. I also need to interface with C-libraries which are either loaded as a shared library or pre-compiled with clang and loaded as BC file. 
However, LLVM does not provide a way how to construct function signature compatible with the C-ABI of the specific platform. I know that clang library has internally this information, but I need this functionality without clang.

Is there any documentation which describes how to do generate C-ABI compatible LLVM functions or code that implements this functionality ?

Thanks,

Dmitri
_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list