LLVM: include/llvm/ExecutionEngine/Orc/IRCompileLayer.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_EXECUTIONENGINE_ORC_IRCOMPILELAYER_H
14#define LLVM_EXECUTIONENGINE_ORC_IRCOMPILELAYER_H
15
22#include
23#include
24#include
25
26namespace llvm {
27
29
30namespace orc {
31
33public:
35 public:
42
43 protected:
45
46 private:
48 };
49
52
54 std::unique_ptr Compile);
55
57
58 void setNotifyCompiled(NotifyCompiledFunction NotifyCompiled);
59
60 void emit(std::unique_ptr R,
62
63private:
64 mutable std::mutex IRLayerMutex;
66 std::unique_ptr Compile;
68 NotifyCompiledFunction NotifyCompiled = NotifyCompiledFunction();
69};
70
71}
72}
73
74#endif
Tagged union holding either a T or a Error.
A Module instance is used to store all the information related to an LLVM module.
An ExecutionSession represents a running JIT program.
Definition IRCompileLayer.h:34
virtual Expected< std::unique_ptr< MemoryBuffer > > operator()(Module &M)=0
IRCompiler(IRSymbolMapper::ManglingOptions MO)
Definition IRCompileLayer.h:36
const IRSymbolMapper::ManglingOptions & getManglingOptions() const
Definition IRCompileLayer.h:38
IRSymbolMapper::ManglingOptions & manglingOptions()
Definition IRCompileLayer.h:44
std::function< void( MaterializationResponsibility &R, ThreadSafeModule TSM)> NotifyCompiledFunction
Definition IRCompileLayer.h:50
IRCompiler & getCompiler()
Definition IRCompileLayer.h:56
IRCompileLayer(ExecutionSession &ES, ObjectLayer &BaseLayer, std::unique_ptr< IRCompiler > Compile)
IRLayer(ExecutionSession &ES, const IRSymbolMapper::ManglingOptions *&MO)
Tracks responsibility for materialization, and mediates interactions between MaterializationUnits and...
Interface for Layers that accept object files.
An LLVM Module together with a shared ThreadSafeContext.
This is an optimization pass for GlobalISel generic memory operations.
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.