1//===- EPCGenericJITLinkMemoryManagerSPS.h - SPS mem manager ----*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// Factories that build an EPCGenericJITLinkMemoryManager over the ORC runtime's
10// SPS controller interface.
11//
12// The bindings and their ProxySpecs are shared with the other drivers of the
13// runtime's memory manager; see SimpleMemoryMapSPS.h.
14//
15//===----------------------------------------------------------------------===//
16
17#ifndef LLVM_EXECUTIONENGINE_ORC_EPCGENERICJITLINKMEMORYMANAGERSPS_H
18#define LLVM_EXECUTIONENGINE_ORC_EPCGENERICJITLINKMEMORYMANAGERSPS_H
19
20#include "llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h"
21#include "llvm/ExecutionEngine/Orc/SimpleMemoryMapSPS.h"
22#include "llvm/Support/Compiler.h"
23
24#include <memory>
25
26namespace llvm::orc::sps {
27
28/// Create an EPCGenericJITLinkMemoryManager for the ORC runtime's
29/// SimpleNativeMemoryMap interface, resolving its symbols in the given
30/// JITDylib.
31LLVM_ABI Expected<std::unique_ptr<EPCGenericJITLinkMemoryManager>>
32createEPCGenericJITLinkMemoryManager(JITDylib &JD);
33
34/// Create an EPCGenericJITLinkMemoryManager for the ORC runtime's
35/// SimpleNativeMemoryMap interface, resolving its symbols in the given
36/// ExecutionSession's bootstrap JITDylib.
37LLVM_ABI Expected<std::unique_ptr<EPCGenericJITLinkMemoryManager>>
38createEPCGenericJITLinkMemoryManager(ExecutionSession &ES);
39
40} // namespace llvm::orc::sps
41
42#endif // LLVM_EXECUTIONENGINE_ORC_EPCGENERICJITLINKMEMORYMANAGERSPS_H
43