14 #ifndef LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H
15 #define LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H
27 template <
typename BaseLayerT,
typename TransformFtor>
35 TransformFtor Transform = TransformFtor())
36 : BaseLayer(BaseLayer), Transform(std::move(Transform)) {}
43 template <
typename ObjSetT,
typename MemoryManagerPtrT,
44 typename SymbolResolverPtrT>
46 SymbolResolverPtrT Resolver) {
48 for (
auto I = Objects.begin(),
E = Objects.end();
I !=
E; ++
I)
49 *
I = Transform(std::move(*
I));
51 return BaseLayer.addObjectSet(std::move(Objects), std::move(MemMgr),
63 return BaseLayer.findSymbol(Name, ExportedSymbolsOnly);
75 bool ExportedSymbolsOnly) {
76 return BaseLayer.findSymbolIn(H, Name, ExportedSymbolsOnly);
87 BaseLayer.mapSectionAddress(H, LocalAddress, TargetAddr);
97 BaseLayerT &BaseLayer;
98 TransformFtor Transform;
104 #endif // LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H
Represents a symbol in the JIT.
static GCRegistry::Add< CoreCLRGC > E("coreclr","CoreCLR-compatible GC")
uint64_t JITTargetAddress
Represents an address in the target process's address space.