1
2
3
4
5
6 #ifndef CMAJOR_MID_LLVM_BACK_END_INCLUDED
7 #define CMAJOR_MID_LLVM_BACK_END_INCLUDED
8 #include <cmajor/cmmid/BackEnd.hpp>
9
10 namespace cmajor { namespace mid {
11
12 class LLvmBackEnd : public BackEnd
13 {
14 public:
15 void Init() override;
16 void Done() override;
17 cmajor::ir::EmittingContext* CreateEmittingContext(int optimizationLevel) override;
18 void DestroyEmittingContext(cmajor::ir::EmittingContext* emittingContext) override;
19 cmajor::ir::Emitter* CreateEmitter(cmajor::ir::EmittingContext* emittingContext) override;
20 void DestroyEmitter(cmajor::ir::Emitter* emitter) override;
21 BackEndKind GetBackEndKind() override { return BackEndKind::llvmBackEnd; }
22 };
23
24 } }
25
26 #endif // CMAJOR_MID_LLVM_BACK_END_INCLUDED