[llvm-dev] ExecutionEngine Orc/JITLink Layering issues

Lang Hames via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 19 19:56:33 PST 2021


Hi Geoffrey,

I think this should be fixed now. The dependency diagram looks like:

OrcJIT +-> JITLink +-> OrcTargetProcess +-> OrcShared
       \----------/                    /
        \-----------------------------/

That is:
OrcShared has no dependencies.
OrcTargetProcess depends on OrcShared, but nothing else.
JITLink depends on OrcTargetProcess and OrcShared.
Orc depends on the previous three.

There are some dependencies between Orc and ExecutionSession. I expect they
will be removed in the LLVM 13 timeframe though.

Regards,
Lang.

On Wed, Jan 20, 2021 at 4:53 AM Geoffrey Martin-Noble <gcmn at google.com>
wrote:

> Thanks! Not a huge rush. I didn't really want to go mucking about in there
> myself since it seemed like you were actively working on reorganizing it :-)
>
> On Mon, Jan 18, 2021 at 2:47 AM Lang Hames <lhames at gmail.com> wrote:
>
>> Hi Geoffrey,
>>
>> Sorry for the delayed reply! Yep -- some of this mess crept in while
>> TargetProcess and Shared were being broken out. I start looking at a
>> refactor to sort this out tomorrow, but it might take a little while to
>> untangle.
>>
>> Regards,
>> Lang.
>>
>> On Fri, Jan 8, 2021 at 12:05 PM Geoffrey Martin-Noble <gcmn at google.com>
>> wrote:
>>
>>> Ping on this now that folks are likely back from the holidays :-)
>>>
>>> On Tue, Dec 29, 2020 at 12:59 PM Geoffrey Martin-Noble <gcmn at google.com>
>>> wrote:
>>>
>>>> I noticed that there appear to be some layering issues in the
>>>> ExecutionEngine libraries. The includes between the Orc and JITLink
>>>> components have a lot of cycles. From reading
>>>> https://groups.google.com/g/llvm-dev/c/uOKEZ-1THf4/m/aHiR5gTOAwAJ it
>>>> seems like the goal is for shared components to be in Orc/Shared. Perhaps
>>>> more things could move in there
>>>>
>>>> I made some dot graphs using cinclude2dot.
>>>> https://gist.github.com/GMNGeoffrey/2c9818d418a70517f8c628432e1c2447
>>>> has them at the directory level and also one where the include/ and lib/
>>>> directories are merged into a single node. I've also attached the rendered
>>>> SVGs.
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210120/3d6eab72/attachment.html>


More information about the llvm-dev mailing list