LLVM: include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_EXECUTIONENGINE_ORC_OBJECTLINKINGLAYER_H
15#define LLVM_EXECUTIONENGINE_ORC_OBJECTLINKINGLAYER_H
16
24
25#include
26
27namespace llvm {
28
30class EHFrameRegistrar;
33}
34
35namespace orc {
36
37
38
39
40
41
44 public RTTIExtends<ObjectLinkingLayer, ObjectLayer> {
45private:
47
48public:
50
52 std::function<void(std::unique_ptr)>;
53
54
55
58
59
63
64
65
66
67
69 std::unique_ptrjitlink::JITLinkMemoryManager MemMgr)
71
73
74
75
76
80
83
85
86
87 void emit(std::unique_ptr R,
88 std::unique_ptr O) override;
89};
90
91}
92}
93
94#endif
Inheritance utility for extensible RTTI.
Manages allocations of JIT memory.
An ExecutionSession represents a running JIT program.
ExecutionSession & getExecutionSession()
virtual Error add(ResourceTrackerSP RT, std::unique_ptr< jitlink::LinkGraph > G, MaterializationUnit::Interface I)
Adds a LinkGraph to the JITDylib for the given ResourceTracker.
void emit(std::unique_ptr< MaterializationResponsibility > R, std::unique_ptr< jitlink::LinkGraph > G) override
Emit a LinkGraph.
std::function< void(std::unique_ptr< MemoryBuffer >)> ReturnObjectBuffer
LinkGraphLinkingLayer(ExecutionSession &ES)
Construct a LinkGraphLinkingLayer using the ExecutorProcessControl instance's memory manager.
virtual Error add(ResourceTrackerSP RT, std::unique_ptr< MemoryBuffer > O, MaterializationUnit::Interface I)
Adds a MaterializationUnit for the object file in the given memory buffer to the JITDylib for the giv...
std::function< void(std::unique_ptr< MemoryBuffer >)> ReturnObjectBufferFunction
Definition ObjectLinkingLayer.h:51
void setReturnObjectBuffer(ReturnObjectBufferFunction ReturnObjectBuffer)
Set an object buffer return function.
Definition ObjectLinkingLayer.h:77
ObjectLinkingLayer(ExecutionSession &ES)
Construct an ObjectLinkingLayer using the ExecutorProcessControl instance's memory manager.
Definition ObjectLinkingLayer.h:56
static char ID
Definition ObjectLinkingLayer.h:49
ObjectLinkingLayer(ExecutionSession &ES, jitlink::JITLinkMemoryManager &MemMgr)
Construct an ObjectLinkingLayer using a custom memory manager.
Definition ObjectLinkingLayer.h:60
ObjectLinkingLayer(ExecutionSession &ES, std::unique_ptr< jitlink::JITLinkMemoryManager > MemMgr)
Construct an ObjectLinkingLayer.
Definition ObjectLinkingLayer.h:68
This is an optimization pass for GlobalISel generic memory operations.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.