[PATCH] D68732: Break out OrcError and RPC

Chris Bieneman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 9 14:32:00 PDT 2019


beanz created this revision.
beanz added a reviewer: lhames.
Herald added subscribers: hiraditya, mgorny.
Herald added a project: LLVM.

When createing an ORC remote JIT target the current library split forces the target process to link large portions of LLVM (Core, Execution Engine, JITLink, Object, MC, Passes, RuntimeDyld, Support, Target, and TransformUtils). This occurs because the ORC RPC interfaces rely on the static globals the ORC Error types require, which starts a cycle of pulling in more and more.

This patch breaks the ORC RPC Error implementations out into an "OrcError" library which only depends on LLVM Support. It also pulls the ORC RPC headers into their own subdirectory.

With this patch code can include the Orc/RPC/*.h headers and will only incur link dependencies on LLVMOrcError and LLVMSupport.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D68732

Files:
  llvm/examples/Kaleidoscope/BuildingAJIT/Chapter5/RemoteJITUtils.h
  llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h
  llvm/include/llvm/ExecutionEngine/Orc/RPC/RPCSerialization.h
  llvm/include/llvm/ExecutionEngine/Orc/RPC/RPCUtils.h
  llvm/include/llvm/ExecutionEngine/Orc/RPC/RawByteChannel.h
  llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h
  llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h
  llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h
  llvm/lib/ExecutionEngine/CMakeLists.txt
  llvm/lib/ExecutionEngine/LLVMBuild.txt
  llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
  llvm/lib/ExecutionEngine/Orc/LLVMBuild.txt
  llvm/lib/ExecutionEngine/Orc/OrcError.cpp
  llvm/lib/ExecutionEngine/Orc/RPCUtils.cpp
  llvm/lib/ExecutionEngine/OrcError/CMakeLists.txt
  llvm/lib/ExecutionEngine/OrcError/LLVMBuild.txt
  llvm/lib/ExecutionEngine/OrcError/OrcError.cpp
  llvm/lib/ExecutionEngine/OrcError/RPCError.cpp
  llvm/tools/lli/RemoteJITUtils.h
  llvm/unittests/ExecutionEngine/Orc/QueueChannel.h
  llvm/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68732.224165.patch
Type: text/x-patch
Size: 13318 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191009/1a21e361/attachment.bin>


More information about the llvm-commits mailing list