This adds a '--no-implicit-module' option, which disables the insertion of a top-level 'builtin.module' during parsing. The translation APIs are also updated to take/return 'Operation*' instead of 'ModuleOp', to allow other operation types to be used. To simplify translations which are restricted to specific operation types, 'TranslateFromMLIRRegistration' has an overload which performs the necessary cast and error checking. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D134237
34 lines
1.2 KiB
C++
34 lines
1.2 KiB
C++
//===- standalone-translate.cpp ---------------------------------*- C++ -*-===//
|
|
//
|
|
// This file is licensed under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This is a command line utility that translates a file from/to MLIR using one
|
|
// of the registered translations.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "Standalone/StandaloneDialect.h"
|
|
#include "mlir/InitAllTranslations.h"
|
|
#include "mlir/Support/LogicalResult.h"
|
|
#include "mlir/Tools/mlir-translate/MlirTranslateMain.h"
|
|
#include "mlir/Tools/mlir-translate/Translation.h"
|
|
|
|
int main(int argc, char **argv) {
|
|
mlir::registerAllTranslations();
|
|
|
|
// TODO: Register standalone translations here.
|
|
mlir::TranslateFromMLIRRegistration withdescription(
|
|
"option", "different from option",
|
|
[](mlir::Operation *op, llvm::raw_ostream &output) {
|
|
return mlir::LogicalResult::success();
|
|
},
|
|
[](mlir::DialectRegistry &a) {});
|
|
|
|
return failed(
|
|
mlir::mlirTranslateMain(argc, argv, "MLIR Translation Testing Tool"));
|
|
}
|