[LLVMdev] Performance degradation when repeatedly exchanging JITted functions

James Molloy
Tue, 06 Mar 2012 17:48:10 -0000

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

Why not? If they make LLVM better and aren't hacks, why wouldn't they be
accepted?
________________________________________
From: llvmdev-bounces at cs.uiuc.edu [llvmdev-bounces at cs.uiuc.edu] On Behalf
Of Clemens Hammacher [hammacher at cs.uni-saarland.de]
Sent: 06 March 2012 16:39
To: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] Performance degradation when repeatedly exchanging JITted
functions

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


-- IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended recipient,
please notify the sender immediately and do not disclose the contents to any
other person, use it for any purpose, or store or copy the information in any
medium.  Thank you.