[LLVMdev] [MCJIT] Why does it allocate function by function?
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