[Mlir-commits] [mlir] [mlir] Add mlirTranslateModuleToLLVMIR to MLIR-C (PR #73117)
Oleksandr Alex Zinenko
llvmlistbot at llvm.org
Wed Nov 22 08:33:34 PST 2023
================
@@ -0,0 +1,38 @@
+//===-- LLVMIR.h - C Interface for MLIR LLVMIR Target ---------------------===//
+//
+// Part of the LLVM Project, 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
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Target/LLVMIR.h"
+#include "llvm-c/Support.h"
+
+#include "llvm/IR/LLVMContext.h"
+#include <memory>
+
+#include "mlir/CAPI/IR.h"
+#include "mlir/CAPI/Support.h"
+#include "mlir/CAPI/Wrap.h"
+#include "mlir/Target/LLVMIR/ModuleTranslation.h"
+
+using namespace mlir;
+
+LLVMModuleRef mlirTranslateModuleToLLVMIR(MlirOperation module,
+ LLVMContextRef context,
+ MlirStringRef llvmModuleName) {
+ Operation *moduleOp = unwrap(module);
+
+ llvm::LLVMContext *ctx = reinterpret_cast<llvm::LLVMContext *>(context);
----------------
ftynse wrote:
Nit: I think this can use `wrap/unwrap` from LLVM instead of scary-looking casts if it includes `llvm/IR/Module.h` and `llvm/IR/LLVMContext.h`.
https://github.com/llvm/llvm-project/pull/73117
More information about the Mlir-commits
mailing list