[PATCH] D100711: [ORC-RT] Initial ORC Runtime directories and build system files.
Lang Hames via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 17 13:36:28 PDT 2021
lhames created this revision.
lhames added reviewers: phosek, dblaikie, vitalybuka, yln, cryptoad, morehouse, echristo.
Herald added a subscriber: mgorny.
lhames requested review of this revision.
Herald added a project: Sanitizers.
Herald added a subscriber: Sanitizers.
This patch contains initial directories and build files for the ORC runtime.
The prototype runtime library code has been omitted to simplify the review.
Background:
The ORC runtime will support the LLVM ORC JIT libraries by providing code that
can be loaded by the JIT into the target "executor" process to support
non-trivial operations in that process. The runtime will enable the following
features in JIT'd code:
(1) Native thread local variables
(2) C++ Exceptions
(3) Static initializers
(4) At-exit interposition for correct execution of static destructors
(5) Language runtime registration (e.g. for Objective-C and Swift)
(6) Cross-process lazy compilation
(7) Executor process memory reads/writes by the JIT process
Some of these features (e.g. exception handling and remote lazy compilation)
have been partially implemented in LLVM, but can be more naturally implemented
in a runtime. Other features (e.g. native thread local variables) are
impractical to implement within LLVM and require this runtime.
Constraints:
The ORC runtime requires:
(1) A C++ 14 host compiler and c++ standard library.
(2) A built LLVM to provide the llvm-jitlink tool (required for testing).
(3) A clang compiler (required for testing).
Testing plan:
All planned testing will consist of regression tests using the llvm-jitlink
testing tool.
As the runtime grows there may also be opportunities to write unit tests for
functionality that can be meaningfully tested in isolation (without a JIT
process to communicate with).
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D100711
Files:
compiler-rt/CMakeLists.txt
compiler-rt/cmake/config-ix.cmake
compiler-rt/lib/CMakeLists.txt
compiler-rt/lib/orc/CMakeLists.txt
compiler-rt/lib/orc/placeholder.cpp
compiler-rt/test/CMakeLists.txt
compiler-rt/test/orc/CMakeLists.txt
compiler-rt/test/orc/TestCases/Darwin/lit.local.cfg.py
compiler-rt/test/orc/TestCases/Darwin/x86-64/lit.local.cfg.py
compiler-rt/test/orc/TestCases/Darwin/x86-64/placeholder_test.S
compiler-rt/test/orc/lit.cfg.py
compiler-rt/test/orc/lit.site.cfg.py.in
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D100711.338337.patch
Type: text/x-patch
Size: 10282 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210417/1a1f03aa/attachment.bin>
More information about the llvm-commits
mailing list