LLVM: include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H
14#define LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H
15
19#include
20#include
21
22namespace llvm {
23namespace orc {
24
26 : public RTTIExtends<ObjectTransformLayer, ObjectLayer> {
27public:
29
31 std::function<Expected<std::unique_ptr>(
32 std::unique_ptr)>;
33
36
37 void emit(std::unique_ptr R,
38 std::unique_ptr O) override;
39
41 this->Transform = std::move(Transform);
42 }
43
44private:
46 TransformFunction Transform;
47};
48
49}
50}
51
52#endif
Inheritance utility for extensible RTTI.
An ExecutionSession represents a running JIT program.
Interface for Layers that accept object files.
void emit(std::unique_ptr< MaterializationResponsibility > R, std::unique_ptr< MemoryBuffer > O) override
static char ID
Definition ObjectTransformLayer.h:28
std::function< Expected< std::unique_ptr< MemoryBuffer > >( std::unique_ptr< MemoryBuffer >)> TransformFunction
Definition ObjectTransformLayer.h:30
ObjectTransformLayer(ExecutionSession &ES, ObjectLayer &BaseLayer, TransformFunction Transform=TransformFunction())
void setTransform(TransformFunction Transform)
Definition ObjectTransformLayer.h:40
This is an optimization pass for GlobalISel generic memory operations.