14 #ifndef LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H 15 #define LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H 29 std::function<Expected<std::unique_ptr<MemoryBuffer>>(
30 std::unique_ptr<MemoryBuffer>)>;
36 std::unique_ptr<MemoryBuffer>
O)
override;
48 template <
typename BaseLayerT,
typename TransformFtor>
53 TransformFtor Transform = TransformFtor())
54 : BaseLayer(BaseLayer), Transform(
std::move(Transform)) {}
62 return BaseLayer.addObject(std::move(K), Transform(std::move(Obj)));
73 return BaseLayer.findSymbol(Name, ExportedSymbolsOnly);
85 bool ExportedSymbolsOnly) {
86 return BaseLayer.findSymbolIn(K, Name, ExportedSymbolsOnly);
97 BaseLayer.mapSectionAddress(K, LocalAddress, TargetAddr);
107 BaseLayerT &BaseLayer;
108 TransformFtor Transform;
114 #endif // LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H
Represents a symbol in the JIT.
This class represents lattice values for constants.
uint64_t VModuleKey
VModuleKey provides a unique identifier (allocated and managed by ExecutionSessions) for a module add...
amdgpu Simplify well known AMD library false Value Value const Twine & Name
Tracks responsibility for materialization, and mediates interactions between MaterializationUnits and...
uint64_t JITTargetAddress
Represents an address in the target process's address space.
An ExecutionSession represents a running JIT program.
Lightweight error class with error context and mandatory checking.
Interface for Layers that accept object files.