[llvm-dev] ORC JIT Weekly #29 -- JITLink ELF/x86-64 support improvements

Lang Hames via llvm-dev llvm-dev at lists.llvm.org
Wed Jan 27 18:09:25 PST 2021


>
> Hi,
> Glad to hear about the good news!
> By the way, can you give some doc or RFC for JITLink and relevants,
> I can't find the design doc for ORC JitLink in llvm.org(it's TBD)
> https://llvm.org/docs/ORCv2.html?highlight=jitlink


A JITLink design document is still TBD for now.

What aspects are you most interested in? I may be able to answer some
questions here, and I can keep your questions in mind when I do get time to
write the document.


Regards,
Lang.



On Mon, Jan 25, 2021 at 6:29 PM Lang Hames <lhames at gmail.com> wrote:

> Hi All,
>
> I've set the ORC runtime aside for a week to try to land some improvements
> to JITLink's ELF/x86-64 support before the upcoming LLVM 12 branch on
> Tuesday. JITLink for ELF/x86-64 can now:
>
> - Skip debug sections
> - Handle weak and hidden symbols
> - Issue out-of-bounds errors on several relocation kinds
> - Support exception handling
>
> My hope is that by the time LLVM 12 is released, JITLink ELF/x86-64 will
> be able to handle most or all PIC / small-code-model code. If you want to
> test this out you should now be able to run:
>
> % llvm-jitlink <objects...>
>
> on Linux for objects compiled with -fPIC. (Note: static initializers and
> thread locals are not supported -- these will have to wait for ELF support
> in the ORC runtime).
>
> Many thanks again to Jared Wyles and Stefan Granitz for all their work on
> this -- I'm very excited to see this up and running!
>
> Looking forward: RuntimeDyld will remain the default JIT linker for LLJIT
> in LLVM 12, but we may switch to JITLink by default in LLVM 13 if enough
> progress is made (RuntimeDyld will remain available as an option either
> way).
>
> Current tasks on the LLVM 13 todo list are:
> - Broaden the set of supported relocations on ELF/x86-64 (supporting more
> code and relocation models)
> - Refactor to make the development of new ELF targets easier
> - Refactor to make sharing of format agnostic code easier (e.g.
> relocations specified on a per architecture basis, rather than for (arch,
> format) pairs, shared format-agnostic JITLink passes)
> - Add ELF initializer support by building an ELFPlatform (LinuxPlatform?
> I'm not sure those two are as synonymous as Darwin/MachO) and adding ELF
> support to the runtime.
>
> I'll try to get this all in to the road map soon, but volunteers are
> welcome to put their hand up any time. ;)
>
> As always: Questions, comments and bug reports are very welcome.
>
> -- Lang.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210128/a35c9caf/attachment.html>


More information about the llvm-dev mailing list