14 #ifndef MLIR_TARGET_LLVMIR_MODULETRANSLATION_H 15 #define MLIR_TARGET_LLVMIR_MODULETRANSLATION_H 22 #include "llvm/IR/BasicBlock.h" 23 #include "llvm/IR/Function.h" 24 #include "llvm/IR/IRBuilder.h" 25 #include "llvm/IR/Value.h" 44 template <
typename T = ModuleTranslation>
48 if (
failed(checkSupportedModuleOps(m)))
55 translator.llvmModule = std::move(llvmModule);
56 translator.convertGlobals();
57 if (
failed(translator.convertFunctions()))
60 return std::move(translator.llvmModule);
73 "mlirModule should honor LLVM's module semantics.");
78 llvm::IRBuilder<> &builder);
89 void convertGlobals();
91 void connectPHINodes(LLVMFuncOp func);
99 std::unique_ptr<llvm::Module> llvmModule;
114 #endif // MLIR_TARGET_LLVMIR_MODULETRANSLATION_H Definition: InferTypeOpInterface.cpp:20
Definition: Operation.h:27
Definition: Attributes.h:139
Block represents an ordered list of Operations.
Definition: Block.h:21
Block & front()
Definition: Region.h:54
bool failed(LogicalResult result)
Definition: LogicalResult.h:45
virtual ~ModuleTranslation()
Definition: ModuleTranslation.h:75
Definition: Location.h:52
Definition: ModuleTranslation.h:42
Definition: LogicalResult.h:18
DenseMap< Block *, llvm::BasicBlock * > blockMapping
Definition: ModuleTranslation.h:108
Definition: Attributes.h:53
bool satisfiesLLVMModule(Operation *op)
Definition: LLVMDialect.cpp:1687
static Block & getModuleBody(Operation *m)
Definition: ModuleTranslation.h:65
static std::unique_ptr< llvm::Module > prepareLLVMModule(Operation *m)
Definition: ModuleTranslation.cpp:497
SmallVector< llvm::Value *, 8 > lookupValues(ValueRange values)
A helper to look up remapped operands in the value remapping table.
Definition: ModuleTranslation.cpp:488
ModuleTranslation(Operation *module)
Definition: ModuleTranslation.h:71
DenseMap< Value, llvm::Value * > valueMapping
Definition: ModuleTranslation.h:107
static std::unique_ptr< llvm::Module > translateModule(Operation *m)
Definition: ModuleTranslation.h:45
Definition: OperationSupport.h:640
virtual LogicalResult convertOperation(Operation &op, llvm::IRBuilder<> &builder)
Definition: ModuleTranslation.cpp:157
Region & getRegion(unsigned index)
Returns the region held by this operation at position 'index'.
Definition: Operation.h:369
llvm::StringMap< llvm::Function * > functionMapping
Definition: ModuleTranslation.h:106