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:
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