[mlir-translate] Teach these tools about --allow-unregistered-dialect
Some translations do work with unregistered dialects, this allows one to write testcases against them. It works the same way as it does for mlir-opt. Differential Revision: https://reviews.llvm.org/D118872
This commit is contained in:
parent
44601f4956
commit
968280bc40
|
@ -140,6 +140,11 @@ LogicalResult mlir::mlirTranslateMain(int argc, char **argv,
|
|||
"o", llvm::cl::desc("Output filename"), llvm::cl::value_desc("filename"),
|
||||
llvm::cl::init("-"));
|
||||
|
||||
static llvm::cl::opt<bool> allowUnregisteredDialects(
|
||||
"allow-unregistered-dialect",
|
||||
llvm::cl::desc("Allow operation with no registered dialects"),
|
||||
llvm::cl::init(false));
|
||||
|
||||
static llvm::cl::opt<bool> splitInputFile(
|
||||
"split-input-file",
|
||||
llvm::cl::desc("Split the input file into pieces and "
|
||||
|
@ -179,6 +184,7 @@ LogicalResult mlir::mlirTranslateMain(int argc, char **argv,
|
|||
auto processBuffer = [&](std::unique_ptr<llvm::MemoryBuffer> ownedBuffer,
|
||||
raw_ostream &os) {
|
||||
MLIRContext context;
|
||||
context.allowUnregisteredDialects(allowUnregisteredDialects);
|
||||
context.printOpOnDiagnostic(!verifyDiagnostics);
|
||||
llvm::SourceMgr sourceMgr;
|
||||
sourceMgr.AddNewSourceBuffer(std::move(ownedBuffer), SMLoc());
|
||||
|
|
13
mlir/test/mlir-translate/unregistered-dialects.mlir
Normal file
13
mlir/test/mlir-translate/unregistered-dialects.mlir
Normal file
|
@ -0,0 +1,13 @@
|
|||
// RUN: not mlir-translate %s --allow-unregistered-dialect --mlir-to-llvmir -verify-diagnostics 2>&1 | FileCheck --check-prefix=UNREGOK %s
|
||||
// RUN: not mlir-translate %s --mlir-to-llvmir -verify-diagnostics 2>&1 | FileCheck --check-prefix=REGONLY %s
|
||||
|
||||
|
||||
// If the parser allows unregistered operations, then the translation fails,
|
||||
// otherwise the parse fails.
|
||||
|
||||
// UNREGOK: cannot be converted to LLVM IR
|
||||
// REGONLY: operation being parsed with an unregistered dialect
|
||||
|
||||
func @trivial() {
|
||||
"simple.terminator"() : () -> ()
|
||||
}
|
Loading…
Reference in a new issue