Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
MLIRLower.h
Go to the documentation of this file.
1#ifndef PROTEUS_IMPL_FRONTEND_MLIRLOWER_H
2#define PROTEUS_IMPL_FRONTEND_MLIRLOWER_H
3
5
6#include <mlir/IR/BuiltinOps.h>
7#include <mlir/IR/DialectRegistry.h>
8#include <mlir/IR/MLIRContext.h>
9
10#include <memory>
11#include <string>
12
13namespace llvm {
14class LLVMContext;
15class Module;
16} // namespace llvm
17
18namespace proteus {
19
22 std::string DeviceArch;
23 int OptLevel = 3;
24 std::string TargetTriple;
25 std::string Features;
26 std::string DiagnosticPrefix = "MLIRLower";
27};
28
30 std::unique_ptr<llvm::LLVMContext> Ctx;
31 std::unique_ptr<llvm::Module> Mod;
32};
33
34void registerMLIRLoweringDialects(mlir::DialectRegistry &Registry);
35void loadMLIRLoweringDialects(mlir::MLIRContext &Context);
36
37MLIRLoweringResult lowerMLIRModuleToLLVM(mlir::ModuleOp Module,
38 const MLIRLoweringOptions &Options);
39
40} // namespace proteus
41
42#endif // PROTEUS_IMPL_FRONTEND_MLIRLOWER_H
Definition CompiledLibrary.h:7
Definition MemoryCache.h:27
TargetModelType
Definition TargetModel.h:8
void loadMLIRLoweringDialects(mlir::MLIRContext &Context)
Definition MLIRLower.cpp:151
void registerMLIRLoweringDialects(mlir::DialectRegistry &Registry)
Definition MLIRLower.cpp:138
MLIRLoweringResult lowerMLIRModuleToLLVM(mlir::ModuleOp Module, const MLIRLoweringOptions &Options)
Definition MLIRLower.cpp:532
Definition MLIRLower.h:20
int OptLevel
Definition MLIRLower.h:23
TargetModelType TargetModel
Definition MLIRLower.h:21
std::string DeviceArch
Definition MLIRLower.h:22
std::string Features
Definition MLIRLower.h:25
std::string DiagnosticPrefix
Definition MLIRLower.h:26
std::string TargetTriple
Definition MLIRLower.h:24
Definition MLIRLower.h:29
std::unique_ptr< llvm::LLVMContext > Ctx
Definition MLIRLower.h:30
std::unique_ptr< llvm::Module > Mod
Definition MLIRLower.h:31