aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2021-10-27 13:40:52 -0700
committerLang Hames <lhames@gmail.com>2021-10-27 16:20:46 -0700
commite32b1eee6aab52e2b7b75ee15e506b3e7dd30e68 (patch)
treec82a845172d9243618f9c0041a5f48db6f06590b /llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
parentef922c692fdb971497d79cc8fa6b9d221733db3d (diff)
downloadllvm-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.cpp11
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());
}