HomePhabricator

Break out OrcError and RPC

Authored by beanz on Oct 9 2019, 2:27 PM.

Description

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

Details

Committed
beanzOct 29 2019, 5:31 PM
Reviewer
lhames
Differential Revision
D68732: Break out OrcError and RPC
Parents
rGcbb3104b1c8e: Suppress useless GCC "bitfield is too small to hold all values of enum class"…
Branches
Unknown
Tags
Unknown