[llvm-dev] LLVM Developers Meeting JIT BoF -- Request for Topics of Interest

Lang Hames via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 28 14:58:34 PDT 2020


Hi Geoff,

We use LLJIT. Do addObjectFile() and StaticLibraryDefinitionGenerator work
> for ELF objects?


They do. :)

I've not tested StaticLibraryDefinitionGenerator extensively on Linux. but
we have a regression test checking basic usage. If you run into any trouble
at all please file a bug and assign it to me.

-- Lang.



On Mon, Sep 28, 2020 at 2:05 PM Geoff Levner <glevner at gmail.com> wrote:

> We use LLJIT. Do addObjectFile() and StaticLibraryDefinitionGenerator
> work for ELF objects?
>
> On Mon, Sep 28, 2020 at 10:57 PM Lang Hames <lhames at gmail.com> wrote:
> >
> > Hi Geoff,
> >
> >> Importing symbols into the JIT from an object file or static library...?
> >
> >
> > Sure! Are you interested in doing this with the C API, LLJIT, or raw
> OrcV2 components?
> >
> > The high-level answer here (which we can dig into further in the BoF) is:
> >
> > For object files:
> > - For raw OrcV2 components you'll want to create an
> RTDyldObjectLinkingLayer or ObjectLinkingLayer and use the 'add' method.
> > - For an LLJIT instance you can just call the 'addObjectFile' method.
> > - For the OrcV2 C API you can call the 'LLVMOrcLLJITAddObjectFile'
> function.
> >
> > For static libraries:
> > - For raw OrcV2 components or an LLJIT instance you can attach a
> StaticLibraryDefinitionGenerator [1] to the JITDylib that you would like to
> load the library into. See [2] for an example.
> > - For the OrcV2 C API we will just need to add a method to wrap the
> operation above. We already have
> 'LLVMOrcCreateDynamicLibrarySearchGeneratorForProcess'. We should add
> counterparts to that to load dynamic and static libraries from paths.
> >
> > -- Lang.
> >
> > [1]
> https://github.com/llvm/llvm-project/blob/5aa56b242951ab0f0181386ea58509f19b09206e/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h#L361
> > [2]
> https://github.com/llvm/llvm-project/blob/e7549dafcd33ced4280a81ca1d1ee4cc78ed253f/llvm/tools/lli/lli.cpp#L968
> >
> >
> > On Mon, Sep 28, 2020 at 7:18 AM Geoff Levner <glevner at gmail.com> wrote:
> >>
> >> Importing symbols into the JIT from an object file or static library...?
> >>
> >> On Mon, Sep 28, 2020 at 5:29 AM Lang Hames <lhames at gmail.com> wrote:
> >>>
> >>> Hi Andres,
> >>>
> >>>> A topic that I'd find interesting is what it'd take to make it easier
> to
> >>>> use profile guided optimization in the context of JIT.  A few years
> back
> >>>> I crudely hacked this together, but it was fairly ugly. It'd be nice
> to
> >>>> make that easier.  Possibly too complicated for that type of session?
> >>>
> >>>
> >>> We couldn't go into detail, but we could kick off a discussion and
> identify who is interested in working on this. My pitch: We should solve
> this by investing in JITLink and implementing profiling (and debugger
> support) via ObjectLinkingLayer::Plugins. Maybe a brief overview of /
> discussion on how these work would be useful?
> >>>
> >>> -- Lang.
> >>>
> >>>
> >>> On Fri, Sep 25, 2020 at 7:19 PM Andres Freund <andres at anarazel.de>
> wrote:
> >>>>
> >>>> Hi,
> >>>>
> >>>> On 2020-09-25 19:05:42 -0700, Lang Hames wrote:
> >>>> > The 2020 Virtual LLVM Developer's Meeting is coming up the week
> after next.
> >>>> > I'll be hosting a JIT Birds-of-a-Feather session on Thursday the
> 8th at
> >>>> > 10:55am PDT (See http://llvm.org/devmtg/2020-09/schedule/). I'm
> planning to
> >>>> > run this more like a Round Table: Minimal introduction, plenty of
> time for
> >>>> > discussion.
> >>>> >
> >>>> > Does anyone have any LLVM JIT related topics that they would
> particularly
> >>>> > like to discuss at this session? Any questions that they think
> could be
> >>>> > best answered by a round-table style discussion? I'll aim to rope
> in the
> >>>> > right people and prepare answers to make sure we get the most out
> of the
> >>>> > session.
> >>>>
> >>>> A topic that I'd find interesting is what it'd take to make it easier
> to
> >>>> use profile guided optimization in the context of JIT.  A few years
> back
> >>>> I crudely hacked this together, but it was fairly ugly. It'd be nice
> to
> >>>> make that easier.  Possibly too complicated for that type of session?
> >>>>
> >>>> I dimly recall that the main issue was that there is no good way to
> >>>> extract the profile information without going through files / applying
> >>>> the profile data without going through files.
> >>>>
> >>>> Greetings,
> >>>>
> >>>> Andres Freund
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200928/b101cba6/attachment.html>


More information about the llvm-dev mailing list