summaryrefslogtreecommitdiff
path: root/llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl
AgeCommit message (Collapse)Author
2025-06-26[ORC] Extract MemoryAccess from ExecutorProcessControl, break up header. ↵Lang Hames
(#145671) This moves the MemoryAccess interface out of the ExecutorProcessControl class and splits implementation classes InProcessMemoryManager and SelfExecutorProcessControl out of ExecutorProcessControl.h and into their own headers.
2025-03-03[NFC]Make file-local cl::opt global variables static (#126486)chrisPyr
#125983
2024-08-07Reapply "[CMake] Fold export_executable_symbols_* into function args. ↵Steven Wu
(#101741)" (#102138) Fix the builds with LLVM_TOOL_LLVM_DRIVER_BUILD enabled. LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES is not completely compatible with export_executable_symbols as the later will be ignored if the previous is set to NO. Fix the issue by passing if symbols need to be exported to llvm_add_exectuable so the link flag can be determined directly without calling export_executable_symbols_* later.
2024-08-06Revert "[CMake] Fold export_executable_symbols_* into function args. (#101741)"Steven Wu
This reverts commit 5c56b46a32a8856a022a54291bc9294068f7ddbd. This break lld build when using GENERATE_DRIVER.
2024-08-05[CMake] Fold export_executable_symbols_* into function args. (#101741)Steven Wu
`LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES` is not completely compatible with `export_executable_symbols` as the later will be ignored if the previous is set to NO. Fix the issue by passing if symbols need to be exported to `llvm_add_exectuable` so the link flag can be determined directly without calling `export_executable_symbols_*` later.
2023-06-07[ORC] Simplify construction of EPCIndirectionUtils.Lang Hames
ExecutionSessions always have an ExecutorProcessControl object now, so we can construct EPCIndirectionUtil objects directly from an ExecutionSession.
2023-04-08Re-apply "[ORC] LLJIT updates: ExecutorNativePlatform, default ..." with fixes.Lang Hames
This reapplies 371cb1af61d, which was reverted in 0b2240eda01 due to bot failures. The clang-repl test failure is fixed by dropping the process symbols definition generator that was manually attached to the main JITDylib, since LLJIT now exposes process symbols by default. (The bug was triggered when JIT'd code used the process atexit provided by the generator, rather than the JIT atexit which has been moved into the platform JITDylib). Any LLJIT clients that see crashes in static destructors should likewise remove any process symbol generators attached to their main JITDylib.
2023-03-27[ORC] Move most ORC APIs to ExecutorAddr, introduce ExecutorSymbolDef.Lang Hames
ExecutorAddr was introduced in b8e5f918166 as an eventual replacement for JITTargetAddress. ExecutorSymbolDef is introduced in this patch as a replacement for JITEvaluatedSymbol: ExecutorSymbolDef is an (ExecutorAddr, JITSymbolFlags) pair, where JITEvaluatedSymbol was a (JITTargetAddress, JITSymbolFlags) pair. A number of APIs had already migrated from JITTargetAddress to ExecutorAddr, but many of ORC's internals were still using the older type. This patch aims to address that. Some public APIs are affected as well. If you need to migrate your APIs you can use the following operations: * ExecutorAddr::toPtr replaces jitTargetAddressToPointer and jitTargetAddressToFunction. * ExecutorAddr::fromPtr replace pointerToJITTargetAddress. * ExecutorAddr(JITTargetAddress) creates an ExecutorAddr value from a JITTargetAddress. * ExecutorAddr::getValue() creates a JITTargetAddress value from an ExecutorAddr. JITTargetAddress and JITEvaluatedSymbol will remain in JITSymbol.h for now, but the aim will be to eventually deprecate and remove these types (probably when MCJIT and RuntimeDyld are deprecated).
2022-05-20[ORC][examples] Add missing EPCIndirectionUtils::cleanup call.Lang Hames
Clients are required to make this call prior to destroying the object. Adding the missing call fixes an assertion that was triggering at program termination time in the LLJITWithExecutorProcessControl example.
2022-05-05[ORC] Return ExecutorAddrs rather than JITEvaluatedSymbols from LLJIT::lookup.Lang Hames
Clients don't care about linkage, and ExecutorAddr is much more ergonomic.
2021-09-23[ORC][examples] Export exectuable symbols explicitly in ↵Stefan Gränitz
LLJITWithExecutorProcessControl Functions in static code that should be callable from JITed code must be exported. For dynamic libraries extern functions are exported by default. For exectuables, linkers usually strip them away unless we explicitly ask for keeping them. Reviewed By: xgupta Differential Revision: https://reviews.llvm.org/D110345
2021-09-23[ORC] Minor renaming and typo fixes (NFC)Stefan Gränitz
Two typos, one unsused include and some leftovers from the TargetProcessControl -> ExecutorProcessControl renaming Reviewed By: xgupta Differential Revision: https://reviews.llvm.org/D110260