LLVM: include/llvm/ExecutionEngine/Orc/MaterializationUnit.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_EXECUTIONENGINE_ORC_MATERIALIZATIONUNIT_H

14#define LLVM_EXECUTIONENGINE_ORC_MATERIALIZATIONUNIT_H

15

20

22

24

25

26

27

28

29

30

31

32

36

37public:

38 static char ID;

39

45 assert((!this->InitSymbol || this->SymbolFlags.count(this->InitSymbol)) &&

46 "If set, InitSymbol should appear in InitialSymbolFlags map");

47 }

48

51 };

52

57

58

59

61

62

64

65

67

68

69

70

71 virtual void

72 materialize(std::unique_ptr R) = 0;

73

74

75

80 dbgs() << "In " << getName() << ": discarding init symbol \""

81 << *Name << "\"\n";

82 });

84 }

85 discard(JD, std::move(Name));

86 }

87

88protected:

91

92private:

93 virtual void anchor();

94

95

96

97

98

100};

101

102}

103

104#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

static StringRef getName(Value *V)

#define DEBUG_WITH_TYPE(TYPE,...)

DEBUG_WITH_TYPE macro - This macro should be used by passes to emit debug information.

StringRef - Represent a constant reference to a string, i.e.

Tracks responsibility for materialization, and mediates interactions between MaterializationUnits and...

static char ID

Definition MaterializationUnit.h:38

MaterializationUnit(Interface I)

Definition MaterializationUnit.h:53

virtual StringRef getName() const =0

Return the name of this materialization unit.

friend class JITDylib

Definition MaterializationUnit.h:35

SymbolStringPtr InitSymbol

Definition MaterializationUnit.h:90

SymbolFlagsMap SymbolFlags

Definition MaterializationUnit.h:89

const SymbolFlagsMap & getSymbols() const

Return the set of symbols that this source provides.

Definition MaterializationUnit.h:63

virtual void materialize(std::unique_ptr< MaterializationResponsibility > R)=0

Implementations of this method should materialize all symbols in the materialzation unit,...

const SymbolStringPtr & getInitializerSymbol() const

Returns the initialization symbol for this MaterializationUnit (if any).

Definition MaterializationUnit.h:66

void doDiscard(const JITDylib &JD, const SymbolStringPtr &Name)

Called by JITDylibs to notify MaterializationUnits that the given symbol has been overridden.

Definition MaterializationUnit.h:76

friend class ExecutionSession

Definition MaterializationUnit.h:34

virtual ~MaterializationUnit()=default

Pointer to a pooled string representing a symbol name.

DenseMap< SymbolStringPtr, JITSymbolFlags > SymbolFlagsMap

A map from symbol names (as SymbolStringPtrs) to JITSymbolFlags.

LLVM_ABI raw_ostream & dbgs()

dbgs() - This returns a reference to a raw_ostream for debugging messages.

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.

SymbolFlagsMap SymbolFlags

Definition MaterializationUnit.h:49

SymbolStringPtr InitSymbol

Definition MaterializationUnit.h:50

Interface(SymbolFlagsMap InitalSymbolFlags, SymbolStringPtr InitSymbol)

Definition MaterializationUnit.h:42