diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2022-08-13 15:37:04 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2023-02-08 19:04:56 +0000 |
| commit | 61cfbce3347e4372143bcabf7b197577b9f3958a (patch) | |
| tree | a996b7140fcecf4ec110b2ac28983b858e5df637 /contrib/llvm-project/llvm/lib/ExecutionEngine | |
| parent | 972a253a57b6f144b0e4a3e2080a2a0076ec55a0 (diff) | |
| parent | 677727e8296a802385345db6fa65e68223f4597a (diff) | |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/ExecutionEngine')
3 files changed, 21 insertions, 9 deletions
diff --git a/contrib/llvm-project/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp b/contrib/llvm-project/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp index 3f75012f5cf9..4afcf95e9e8e 100644 --- a/contrib/llvm-project/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp +++ b/contrib/llvm-project/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp @@ -24,6 +24,7 @@ #include "llvm/IR/Function.h" #include "llvm/IR/Metadata.h" #include "llvm/IR/ValueHandle.h" +#include "llvm/Object/ELFObjectFile.h" #include "llvm/Object/ObjectFile.h" #include "llvm/Object/SymbolSize.h" #include "llvm/Support/Debug.h" diff --git a/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp b/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp index ca3f64b8a409..ee92e5191b50 100644 --- a/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp +++ b/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp @@ -11,7 +11,7 @@ #include "llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h" #include "llvm/Support/WindowsError.h" -#if defined(LLVM_ON_UNIX) +#if defined(LLVM_ON_UNIX) && !defined(__ANDROID__) #include <fcntl.h> #include <sys/mman.h> #include <unistd.h> @@ -173,20 +173,30 @@ InProcessMemoryMapper::~InProcessMemoryMapper() { SharedMemoryMapper::SharedMemoryMapper(ExecutorProcessControl &EPC, SymbolAddrs SAs, size_t PageSize) - : EPC(EPC), SAs(SAs), PageSize(PageSize) {} + : EPC(EPC), SAs(SAs), PageSize(PageSize) { +#if (!defined(LLVM_ON_UNIX) || defined(__ANDROID__)) && !defined(_WIN32) + llvm_unreachable("SharedMemoryMapper is not supported on this platform yet"); +#endif +} Expected<std::unique_ptr<SharedMemoryMapper>> SharedMemoryMapper::Create(ExecutorProcessControl &EPC, SymbolAddrs SAs) { +#if (defined(LLVM_ON_UNIX) && !defined(__ANDROID__)) || defined(_WIN32) auto PageSize = sys::Process::getPageSize(); if (!PageSize) return PageSize.takeError(); return std::make_unique<SharedMemoryMapper>(EPC, SAs, *PageSize); +#else + return make_error<StringError>( + "SharedMemoryMapper is not supported on this platform yet", + inconvertibleErrorCode()); +#endif } void SharedMemoryMapper::reserve(size_t NumBytes, OnReservedFunction OnReserved) { -#if defined(LLVM_ON_UNIX) || defined(_WIN32) +#if (defined(LLVM_ON_UNIX) && !defined(__ANDROID__)) || defined(_WIN32) EPC.callSPSWrapperAsync< rt::SPSExecutorSharedMemoryMapperServiceReserveSignature>( @@ -334,7 +344,7 @@ void SharedMemoryMapper::deinitialize( void SharedMemoryMapper::release(ArrayRef<ExecutorAddr> Bases, OnReleasedFunction OnReleased) { -#if defined(LLVM_ON_UNIX) || defined(_WIN32) +#if (defined(LLVM_ON_UNIX) && !defined(__ANDROID__)) || defined(_WIN32) Error Err = Error::success(); { @@ -351,8 +361,8 @@ void SharedMemoryMapper::release(ArrayRef<ExecutorAddr> Bases, #elif defined(_WIN32) if (!UnmapViewOfFile(Reservations[Base].LocalAddr)) - joinErrors(std::move(Err), - errorCodeToError(mapWindowsError(GetLastError()))); + Err = joinErrors(std::move(Err), + errorCodeToError(mapWindowsError(GetLastError()))); #endif diff --git a/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp b/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp index 6c9f099061ae..caa191cea899 100644 --- a/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp +++ b/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp @@ -52,7 +52,7 @@ namespace rt_bootstrap { Expected<std::pair<ExecutorAddr, std::string>> ExecutorSharedMemoryMapperService::reserve(uint64_t Size) { -#if defined(LLVM_ON_UNIX) || defined(_WIN32) +#if (defined(LLVM_ON_UNIX) && !defined(__ANDROID__)) || defined(_WIN32) #if defined(LLVM_ON_UNIX) @@ -125,7 +125,7 @@ ExecutorSharedMemoryMapperService::reserve(uint64_t Size) { Expected<ExecutorAddr> ExecutorSharedMemoryMapperService::initialize( ExecutorAddr Reservation, tpctypes::SharedMemoryFinalizeRequest &FR) { -#if defined(LLVM_ON_UNIX) || defined(_WIN32) +#if (defined(LLVM_ON_UNIX) && !defined(__ANDROID__)) || defined(_WIN32) ExecutorAddr MinAddr(~0ULL); @@ -207,7 +207,7 @@ Error ExecutorSharedMemoryMapperService::deinitialize( Error ExecutorSharedMemoryMapperService::release( const std::vector<ExecutorAddr> &Bases) { -#if defined(LLVM_ON_UNIX) || defined(_WIN32) +#if (defined(LLVM_ON_UNIX) && !defined(__ANDROID__)) || defined(_WIN32) Error Err = Error::success(); for (auto Base : Bases) { @@ -241,6 +241,7 @@ Error ExecutorSharedMemoryMapperService::release( errno, std::generic_category()))); #elif defined(_WIN32) + (void)Size; if (!UnmapViewOfFile(Base.toPtr<void *>())) Err = joinErrors(std::move(Err), |
