xref: /llvm-project/mlir/tools/mlir-translate/mlir-translate.cpp (revision db791b278a414fb6df1acc1799adcf11d8fb9169)
1 //===- mlir-translate.cpp - MLIR Translate Driver -------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This is a command line utility that translates a file from/to MLIR using one
10 // of the registered translations.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #include "mlir/InitAllTranslations.h"
15 #include "mlir/Support/LLVM.h"
16 #include "mlir/Tools/mlir-translate/MlirTranslateMain.h"
17 
18 using namespace mlir;
19 
20 namespace mlir {
21 // Defined in the test directory, no public header.
22 void registerTestRoundtripSPIRV();
23 void registerTestRoundtripDebugSPIRV();
24 #ifdef MLIR_INCLUDE_TESTS
25 void registerTestToLLVMIR();
26 void registerTestFromLLVMIR();
27 #endif
28 } // namespace mlir
29 
registerTestTranslations()30 static void registerTestTranslations() {
31   registerTestRoundtripSPIRV();
32   registerTestRoundtripDebugSPIRV();
33 #ifdef MLIR_INCLUDE_TESTS
34   registerTestToLLVMIR();
35   registerTestFromLLVMIR();
36 #endif
37 }
38 
main(int argc,char ** argv)39 int main(int argc, char **argv) {
40   registerAllTranslations();
41   registerTestTranslations();
42   return failed(mlirTranslateMain(argc, argv, "MLIR Translation Testing Tool"));
43 }
44