[PATCH] D90132: [ORC] Prototype ORC library reorg + RPC based TargetProcessControl.

Lang Hames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 30 21:32:38 PDT 2020


lhames added a comment.

I'm curious to get your take on the library breakdown and corresponding headers too. We now have:

  include/llvm/ExecutionEngine/Orc               -> lib/ExecutionEngine/Orc              (libLLVMOrc)
  include/llvm/ExecutionEngine/Orc/Shared        -> lib/ExecutionEngine/OrcShared        (libLLVMOrcShared)
  include/llvm/ExecutionEngine/Orc/TargetProcess -> lib/ExecutionEngine/OrcTargetProcess (libLLVMOrcTargetProcess)

This achieves the initial goal that executors should not need to link Orc (instead they only need to link OrcTargetProcess and OrcShared).

The library dependencies are:

  Orc -> OrcShared, RuntimeDyld, JITLink, IR, Support
  OrcTargetProcess -> OrcShared

Side note: My ideal solution would be to (a) move OrcJIT out into its own top-level directory, and (2) break libLLVMOrc up into quite a few libraries: ORC Core, ObjLinking, RTDyldLinking, IR, LLJIT, Shared, and TargetProcess at least. Unfortunately I don't think this is worth pursuing at the moment: Any real Orc use-case will need one of RTDyldObjectLinkingLayer or ObjectLinkingLayer, both of which depend and libObject, which depends on everything Orc does today anyway. However if/when libObject gets refactored to eliminate these dependencies we should revisit this.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D90132/new/

https://reviews.llvm.org/D90132



More information about the llvm-commits mailing list