[LLVMdev] [MCJIT] Why does it allocate function by function?

Yuri yuri at rawbw.com
Wed Jul 6 09:28:05 PDT 2011

On 07/06/2011 08:28, Jim Grosbach wrote:
> Hi Yuri, You're correct that the current JITMemoryManager interface 
> isn't a very good fit for the MCJIT. For the time being though, the 
> intent is to work with it as much as possible so that the MCJIT can be 
> a drop-in replacement for the old JIT. If we change the 
> JITMemoryManager API right off the bat, we'll make it that much harder 
> for clients to migrate to the new JIT, slowing adoption and reducing 
> testing. If we run into situations where it's just unreasonable to do 
> that, we'll need to re-evaluate, but at least for basic things, it 
> should be reasonably feasible. Regards, -Jim 

I see your point about MCJIT adoption.
But instead of simply fulfilling relocations and finding exported symbol 
locations, now we have to copy each function into the separate location? 
What if it they have the hardcoded assumptions that they are located 
with particular offsets against each other? This is quite clumsy and 
unreasonably complex approach.

I think the right and simple solution would be to make the allocators an 
internal affair of JIT, so that old JIT defines and uses 
JITMemoryManager inside as it needs, and MCJIT doesn't, and clients 
don't see any of this.


More information about the llvm-dev mailing list