[all-commits] [llvm/llvm-project] 217fd5: [ORC] Introduce deferred allocation-actions scheme...
lhames via All-commits
all-commits at lists.llvm.org
Fri Jan 13 16:16:11 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 217fd59cc5849f1afdbb8a74807a80b23f2da227
https://github.com/llvm/llvm-project/commit/217fd59cc5849f1afdbb8a74807a80b23f2da227
Author: Lang Hames <lhames at gmail.com>
Date: 2023-01-13 (Fri, 13 Jan 2023)
Changed paths:
M compiler-rt/lib/orc/CMakeLists.txt
R compiler-rt/lib/orc/macho_ehframe_registration.cpp
M compiler-rt/lib/orc/macho_platform.cpp
M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
Log Message:
-----------
[ORC] Introduce deferred allocation-actions scheme for MachOPlatform bootstrap.
This patch modifies the MachOPlatform bootstrap process to record allocation
actions for ORC runtime platform support code in a "deferred actions" vector
rather than attaching it to the corresponding LinkGraphs up-front. The deferred
allocation-actions are run after all the platform support code has been loaded
by attaching them to a separate "bootstrap-complete" graph.
This change should allow the mach-o platform support code in the ORC runtime to
use advanced mach-o platform features (e.g. static inits, TLVs), provided that
the support code does not use these features at runtime before the bootstrap
process completes, or after the shutdown process starts. This is a nice
improvement in and of itself but is motivated by specific future plans: we
want to start recording unwind info in the mach-o platform state object*, and
the recording functions will have their own frame info that needs registering.
The deferred allocation-actions scheme allows for this.
* The plan is to add a new unwind-info-lookup path to libunwind to allow it to
call back to the ORC runtime to find unwind sections. This will simplify the
implementation of support for JIT'd compact-unwind info.
More information about the All-commits
mailing list