[llvm-dev] LLD status update and performance chart

Philip Reames via llvm-dev llvm-dev at lists.llvm.org
Tue Dec 13 20:34:57 PST 2016



On 12/13/2016 01:24 PM, Rafael Avila de Espindola via llvm-dev wrote:
>> As to a JIT linker, I once wrote a small JIT C compiler which creates an
>> object file in memory and then jump to the entry point of the file after
>> relocating it in memory. From that experience (and my experience of LLD),
>> I'd think JIT linker is much easier to write than static linkers, because
>> JIT linkers don't need to interact with dynamic linkers. Static linkers
>> have to create data that will be interpreted by the dynamic linker, and
>> that's one of the most complicated things in LLD (the other is the linker
>> script, but that's a different story.) So I don't expect that there are
>> many things that we can share between JIT linkers and static linkers. Of
>> course there may be something that I don't know well about JIT, but that's
>> my feeling at this moment.
> My feeling exactly. The existing JIT hurts itself by producing full .o
> files and then interpreting them.
As a user of the JIT infrastructure, I completely and utterly disagree 
with this position.  The "in-memory compiler" architecture has some 
downsides (e.g. compile time), but overall is one of the designs MCJIT 
got right from a software design, testability, and flexibility perspective.
> Even with that design it is not clear
> that we could reasonably share code. If we are wrong, hey, awesome, send
> the patch.



More information about the llvm-dev mailing list