[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