[Mlir-commits] [mlir] 9b2a349 - [MLIR][ModuleTranslation] Add disableVerification parameter (NFC) (#94445)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Jun 5 03:47:27 PDT 2024
Author: Christian Ulmann
Date: 2024-06-05T12:47:24+02:00
New Revision: 9b2a349991a87b2d9d576b0b1f63f357870449b1
URL: https://github.com/llvm/llvm-project/commit/9b2a349991a87b2d9d576b0b1f63f357870449b1
DIFF: https://github.com/llvm/llvm-project/commit/9b2a349991a87b2d9d576b0b1f63f357870449b1.diff
LOG: [MLIR][ModuleTranslation] Add disableVerification parameter (NFC) (#94445)
This commit adds a boolean parameter that allows downstream users to
disable the verification when translating an MLIR module to LLVM IR.
This is helpful for debugging broken LLVM IR modules post translation.
Added:
Modified:
mlir/include/mlir/Target/LLVMIR/Export.h
mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
Removed:
################################################################################
diff --git a/mlir/include/mlir/Target/LLVMIR/Export.h b/mlir/include/mlir/Target/LLVMIR/Export.h
index f9a6db0fc94d5..2244968655138 100644
--- a/mlir/include/mlir/Target/LLVMIR/Export.h
+++ b/mlir/include/mlir/Target/LLVMIR/Export.h
@@ -26,7 +26,8 @@ class Operation;
/// LLVMTranslationDialectInterface.
std::unique_ptr<llvm::Module>
translateModuleToLLVMIR(Operation *module, llvm::LLVMContext &llvmContext,
- llvm::StringRef name = "LLVMDialectModule");
+ llvm::StringRef name = "LLVMDialectModule",
+ bool disableVerification = false);
} // namespace mlir
#endif // MLIR_TARGET_LLVMIR_EXPORT_H
diff --git a/mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h b/mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
index 310a43e0de96b..85fdfed3bdbeb 100644
--- a/mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
+++ b/mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
@@ -57,7 +57,8 @@ class ComdatSelectorOp;
/// needs to look up block and function mappings.
class ModuleTranslation {
friend std::unique_ptr<llvm::Module>
- mlir::translateModuleToLLVMIR(Operation *, llvm::LLVMContext &, StringRef);
+ mlir::translateModuleToLLVMIR(Operation *, llvm::LLVMContext &, StringRef,
+ bool);
public:
/// Stores the mapping between a function name and its LLVM IR representation.
diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
index 176821f82434d..7b86b250c294b 100644
--- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
@@ -1818,7 +1818,7 @@ prepareLLVMModule(Operation *m, llvm::LLVMContext &llvmContext,
std::unique_ptr<llvm::Module>
mlir::translateModuleToLLVMIR(Operation *module, llvm::LLVMContext &llvmContext,
- StringRef name) {
+ StringRef name, bool disableVerification) {
if (!satisfiesLLVMModule(module)) {
module->emitOpError("can not be translated to an LLVMIR module");
return nullptr;
@@ -1867,7 +1867,8 @@ mlir::translateModuleToLLVMIR(Operation *module, llvm::LLVMContext &llvmContext,
if (failed(translator.convertFunctions()))
return nullptr;
- if (llvm::verifyModule(*translator.llvmModule, &llvm::errs()))
+ if (!disableVerification &&
+ llvm::verifyModule(*translator.llvmModule, &llvm::errs()))
return nullptr;
return std::move(translator.llvmModule);
More information about the Mlir-commits
mailing list