[llvm-dev] ExecutionEngine Orc/JITLink Layering issues

Geoffrey Martin-Noble via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 19 21:53:04 PST 2021


Awesome, thanks! Looks to me like it's fixed too

On Tue, Jan 19, 2021 at 7:56 PM Lang Hames <lhames at gmail.com> wrote:

> 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/20210119/435ae759/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3992 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210119/435ae759/attachment.bin>


More information about the llvm-dev mailing list