[LLVMdev] Performance degradation when repeatedly exchanging JITted functions

Clemens Hammacher
Tue, 06 Mar 2012 16:39:27 -0000

On 3/6/12 5:28 PM, Joerg Sonnenberger wrote:
> Advantage of using the latest address: one saved jmp per call.

Per newly JITted call ;)

> Advantage of using the initial address: easier G/C of intermediate
> versions, less things to keep track of.

I still think both versions require larger changes. When using the
latest address, you have to keep track of all JITted functions per
Function in order to update them. And their number increases linearly,
so the time needed for exchanging a function increases as well.

When using the initial address, you also have to patch all places in
LLVM that rely on the global mapping being updated, which are more than
I initially thought. That's why I stopped working on that.


I don't think that a patch implementing any of those approaches would be
accepted, that's why I am tending towards implementing it outside of LLVM.

Cheers,
Clemens

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6392 bytes
Desc: S/MIME Cryptographic Signature
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20120306/7ba10b6c/attachment.bin>