github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/third_party/mlir/tools/mlir-translate/mlir-translate.cpp (about)

     1  //===- mlir-translate.cpp - MLIR Translate Driver -------------------------===//
     2  //
     3  // Copyright 2019 The MLIR Authors.
     4  //
     5  // Licensed under the Apache License, Version 2.0 (the "License");
     6  // you may not use this file except in compliance with the License.
     7  // You may obtain a copy of the License at
     8  //
     9  //   http://www.apache.org/licenses/LICENSE-2.0
    10  //
    11  // Unless required by applicable law or agreed to in writing, software
    12  // distributed under the License is distributed on an "AS IS" BASIS,
    13  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  // See the License for the specific language governing permissions and
    15  // limitations under the License.
    16  // =============================================================================
    17  //
    18  // This is a command line utility that translates a file from/to MLIR using one
    19  // of the registered translations.
    20  //
    21  //===----------------------------------------------------------------------===//
    22  
    23  #include "mlir/IR/MLIRContext.h"
    24  #include "mlir/Support/LogicalResult.h"
    25  #include "mlir/Support/TranslateClParser.h"
    26  #include "llvm/Support/InitLLVM.h"
    27  
    28  using namespace mlir;
    29  
    30  static llvm::cl::opt<std::string> inputFilename(llvm::cl::Positional,
    31                                                  llvm::cl::desc("<input file>"),
    32                                                  llvm::cl::init("-"));
    33  
    34  static llvm::cl::opt<std::string>
    35      outputFilename("o", llvm::cl::desc("Output filename"),
    36                     llvm::cl::value_desc("filename"), llvm::cl::init("-"));
    37  
    38  int main(int argc, char **argv) {
    39    llvm::InitLLVM y(argc, argv);
    40  
    41    // Add flags for all the registered translations.
    42    llvm::cl::opt<const TranslateFunction *, false, TranslationParser>
    43        translationRequested("", llvm::cl::desc("Translation to perform"),
    44                             llvm::cl::Required);
    45    llvm::cl::ParseCommandLineOptions(argc, argv, "MLIR translation driver\n");
    46  
    47    MLIRContext context;
    48    return failed(
    49        (*translationRequested)(inputFilename, outputFilename, &context));
    50  }