1*7fb89bfbSVitaly Buka //===-- LLVMIR.h - C Interface for MLIR LLVMIR Target -------------*- C -*-===// 2*7fb89bfbSVitaly Buka // 3*7fb89bfbSVitaly Buka // Part of the LLVM Project, under the Apache License v2.0 with LLVM 4*7fb89bfbSVitaly Buka // Exceptions. 5*7fb89bfbSVitaly Buka // See https://llvm.org/LICENSE.txt for license information. 6*7fb89bfbSVitaly Buka // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*7fb89bfbSVitaly Buka // 8*7fb89bfbSVitaly Buka //===----------------------------------------------------------------------===// 9*7fb89bfbSVitaly Buka // 10*7fb89bfbSVitaly Buka // This header declares the C interface to target LLVMIR with MLIR. 11*7fb89bfbSVitaly Buka // 12*7fb89bfbSVitaly Buka //===----------------------------------------------------------------------===// 13*7fb89bfbSVitaly Buka 14*7fb89bfbSVitaly Buka #ifndef MLIR_C_TARGET_LLVMIR_H 15*7fb89bfbSVitaly Buka #define MLIR_C_TARGET_LLVMIR_H 16*7fb89bfbSVitaly Buka 17*7fb89bfbSVitaly Buka #include "mlir-c/IR.h" 18*7fb89bfbSVitaly Buka #include "mlir-c/Support.h" 19*7fb89bfbSVitaly Buka #include "llvm-c/Support.h" 20*7fb89bfbSVitaly Buka 21*7fb89bfbSVitaly Buka #ifdef __cplusplus 22*7fb89bfbSVitaly Buka extern "C" { 23*7fb89bfbSVitaly Buka #endif 24*7fb89bfbSVitaly Buka 25*7fb89bfbSVitaly Buka /// Translate operation that satisfies LLVM dialect module requirements into an 26*7fb89bfbSVitaly Buka /// LLVM IR module living in the given context. This translates operations from 27*7fb89bfbSVitaly Buka /// any dilalect that has a registered implementation of 28*7fb89bfbSVitaly Buka /// LLVMTranslationDialectInterface. 29*7fb89bfbSVitaly Buka /// 30*7fb89bfbSVitaly Buka /// \returns the generated LLVM IR Module from the translated MLIR module, it is 31*7fb89bfbSVitaly Buka /// owned by the caller. 32*7fb89bfbSVitaly Buka MLIR_CAPI_EXPORTED LLVMModuleRef 33*7fb89bfbSVitaly Buka mlirTranslateModuleToLLVMIR(MlirOperation module, LLVMContextRef context); 34*7fb89bfbSVitaly Buka 35*7fb89bfbSVitaly Buka #ifdef __cplusplus 36*7fb89bfbSVitaly Buka } 37*7fb89bfbSVitaly Buka #endif 38*7fb89bfbSVitaly Buka 39*7fb89bfbSVitaly Buka #endif // MLIR_C_TARGET_LLVMIR_H 40