[all-commits] [llvm/llvm-project] a34680: Break out OrcError and RPC

thegreatbeanz via All-commits all-commits at lists.llvm.org
Tue Oct 29 17:31:47 PDT 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: a34680a33eb1caa5e224a9432e9f3e643824dc2d
      https://github.com/llvm/llvm-project/commit/a34680a33eb1caa5e224a9432e9f3e643824dc2d
  Author: Chris Bieneman <chris.bieneman at me.com>
  Date:   2019-10-29 (Tue, 29 Oct 2019)

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

  Log Message:
  -----------
  Break out OrcError and RPC

Summary:
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.

Reviewers: lhames

Reviewed By: lhames

Subscribers: mgorny, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68732




More information about the All-commits mailing list