llvm-project
df50dc97 - [ORC] Share memory-map bindings between their two clients (#216911)

Commit
27 days ago
[ORC] Share memory-map bindings between their two clients (#216911) SimpleMemoryMapBindings holds an executor-side memory manager's instance address and a Proxy per operation: reserve, initialize, deinitialize, release. EPCGenericJITLinkMemoryManager and SimpleRemoteMemoryMapper both take one, so the operations are described once rather than per client. SimpleRemoteMemoryMapper previously held a SymbolAddrs struct and made raw EPC.callSPSWrapperAsync calls. Going through proxies drops the per-call serialization-error plumbing, since Proxy already folds that into the result. sps::createSimpleMemoryMapBindings resolves the bindings with a single lookup, under the specs' default (SimpleNativeMemoryMap) names. The specs move out of EPCGenericJITLinkMemoryManagerSPS.h alongside the bindings, as they describe the interface rather than either client. llvm-jitlink's simple-remote memory manager uses that instead of reading the legacy SimpleExecutorMemoryManager* names out of the bootstrap symbol map.
Author
Parents
Loading