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:

49 static char ID;

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.