9#ifndef LLVM_EXECUTIONENGINE_ORC_TARGETPROCESS_EXECUTORSHAREDMEMORYMAPPERSERVICE_H
10#define LLVM_EXECUTIONENGINE_ORC_TARGETPROCESS_EXECUTORSHAREDMEMORYMAPPERSERVICE_H
13#include "llvm/Config/llvm-config.h"
46 std::vector<shared::WrapperFunctionCall> DeinitializationActions;
52 std::vector<ExecutorAddr> Allocations;
54 HANDLE SharedMemoryFile;
60 reserveWrapper(
const char *ArgData,
size_t ArgSize);
63 initializeWrapper(
const char *ArgData,
size_t ArgSize);
66 deinitializeWrapper(
const char *ArgData,
size_t ArgSize);
69 releaseWrapper(
const char *ArgData,
size_t ArgSize);
71#if (defined(LLVM_ON_UNIX) && !defined(__ANDROID__)) || defined(_WIN32)
72 std::atomic<int> SharedMemoryCount{0};
76 ReservationMap Reservations;
77 AllocationMap Allocations;
This file defines the DenseMap class.
static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringLiteral > StandardNames)
Initialize the set of available library functions based on the specified target triple.
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
Represents an address in the executor process.
void addBootstrapSymbols(StringMap< ExecutorAddr > &M) override
~ExecutorSharedMemoryMapperService() override=default
Error deinitialize(const std::vector< ExecutorAddr > &Bases)
Error release(const std::vector< ExecutorAddr > &Bases)
Expected< std::pair< ExecutorAddr, std::string > > reserve(uint64_t Size)
Error shutdown() override
SmartMutex< false > Mutex
Mutex - A standard, always enforced mutex.
This is an optimization pass for GlobalISel generic memory operations.