summaryrefslogtreecommitdiff
path: root/llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/LLJITWithExecutorProcessControl.cpp
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
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] 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