diff options
author | Lang Hames <lhames@gmail.com> | 2021-10-27 13:40:52 -0700 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2021-10-27 16:20:46 -0700 |
commit | e32b1eee6aab52e2b7b75ee15e506b3e7dd30e68 (patch) | |
tree | c82a845172d9243618f9c0041a5f48db6f06590b /llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp | |
parent | ef922c692fdb971497d79cc8fa6b9d221733db3d (diff) | |
download | llvm-e32b1eee6aab52e2b7b75ee15e506b3e7dd30e68.zip llvm-e32b1eee6aab52e2b7b75ee15e506b3e7dd30e68.tar.gz llvm-e32b1eee6aab52e2b7b75ee15e506b3e7dd30e68.tar.bz2 |
[ORC] Change SPSExecutorAddr serialization, SupportFunctionCall struct.
SPSExecutorAddr will now be serializable to/from ExecutorAddr, rather than
uint64_t. This improves type safety when working with serialized addresses.
Also updates the SupportFunctionCall to use an ExecutorAddrRange (rather than
a separate ExecutorAddr addr and uint64_t size field), and updates the
tpctypes::*Write data structures to use ExecutorAddr rather than
JITTargetAddress.
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp b/llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp index 1c3d728..b543529 100644 --- a/llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp +++ b/llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp @@ -138,36 +138,35 @@ Error SelfExecutorProcessControl::disconnect() { void SelfExecutorProcessControl::writeUInt8sAsync( ArrayRef<tpctypes::UInt8Write> Ws, WriteResultFn OnWriteComplete) { for (auto &W : Ws) - *jitTargetAddressToPointer<uint8_t *>(W.Address) = W.Value; + *W.Addr.toPtr<uint8_t *>() = W.Value; OnWriteComplete(Error::success()); } void SelfExecutorProcessControl::writeUInt16sAsync( ArrayRef<tpctypes::UInt16Write> Ws, WriteResultFn OnWriteComplete) { for (auto &W : Ws) - *jitTargetAddressToPointer<uint16_t *>(W.Address) = W.Value; + *W.Addr.toPtr<uint16_t *>() = W.Value; OnWriteComplete(Error::success()); } void SelfExecutorProcessControl::writeUInt32sAsync( ArrayRef<tpctypes::UInt32Write> Ws, WriteResultFn OnWriteComplete) { for (auto &W : Ws) - *jitTargetAddressToPointer<uint32_t *>(W.Address) = W.Value; + *W.Addr.toPtr<uint32_t *>() = W.Value; OnWriteComplete(Error::success()); } void SelfExecutorProcessControl::writeUInt64sAsync( ArrayRef<tpctypes::UInt64Write> Ws, WriteResultFn OnWriteComplete) { for (auto &W : Ws) - *jitTargetAddressToPointer<uint64_t *>(W.Address) = W.Value; + *W.Addr.toPtr<uint64_t *>() = W.Value; OnWriteComplete(Error::success()); } void SelfExecutorProcessControl::writeBuffersAsync( ArrayRef<tpctypes::BufferWrite> Ws, WriteResultFn OnWriteComplete) { for (auto &W : Ws) - memcpy(jitTargetAddressToPointer<char *>(W.Address), W.Buffer.data(), - W.Buffer.size()); + memcpy(W.Addr.toPtr<char *>(), W.Buffer.data(), W.Buffer.size()); OnWriteComplete(Error::success()); } |