From f4548ed7fc4fdaaf1761d736f65337d34da5a3af Mon Sep 17 00:00:00 2001 From: Martin Erhart Date: Thu, 17 Mar 2022 00:17:53 +0100 Subject: [PATCH] [mlir] Add C API for ControlFlow dialect Add basic C API for the ControlFlow dialect. Follows the format of the other dialects. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D121867 --- mlir/include/mlir-c/Dialect/ControlFlow.h | 25 +++++++++++++++++++++++ mlir/lib/CAPI/Dialect/CMakeLists.txt | 9 ++++++++ mlir/lib/CAPI/Dialect/ControlFlow.cpp | 14 +++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 mlir/include/mlir-c/Dialect/ControlFlow.h create mode 100644 mlir/lib/CAPI/Dialect/ControlFlow.cpp diff --git a/mlir/include/mlir-c/Dialect/ControlFlow.h b/mlir/include/mlir-c/Dialect/ControlFlow.h new file mode 100644 index 000000000000..1ca7054d668e --- /dev/null +++ b/mlir/include/mlir-c/Dialect/ControlFlow.h @@ -0,0 +1,25 @@ +//===-- mlir-c/Dialect/ControlFlow.h - C API for ControlFlow ------*- C -*-===// +// +// 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 +// +//===----------------------------------------------------------------------===// + +#ifndef MLIR_C_DIALECT_CONTROLFLOW_H +#define MLIR_C_DIALECT_CONTROLFLOW_H + +#include "mlir-c/Registration.h" + +#ifdef __cplusplus +extern "C" { +#endif + +MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(ControlFlow, cf); + +#ifdef __cplusplus +} +#endif + +#endif // MLIR_C_DIALECT_CONTROLFLOW_H diff --git a/mlir/lib/CAPI/Dialect/CMakeLists.txt b/mlir/lib/CAPI/Dialect/CMakeLists.txt index 9822f059e6cc..37bc121f2c0d 100644 --- a/mlir/lib/CAPI/Dialect/CMakeLists.txt +++ b/mlir/lib/CAPI/Dialect/CMakeLists.txt @@ -13,6 +13,15 @@ add_mlir_upstream_c_api_library(MLIRCAPIAsync MLIRPass ) +add_mlir_upstream_c_api_library(MLIRCAPIControlFlow + ControlFlow.cpp + + PARTIAL_SOURCES_INTENDED + LINK_LIBS PUBLIC + MLIRCAPIIR + MLIRControlFlow +) + add_mlir_upstream_c_api_library(MLIRCAPIGPU GPU.cpp GPUPasses.cpp diff --git a/mlir/lib/CAPI/Dialect/ControlFlow.cpp b/mlir/lib/CAPI/Dialect/ControlFlow.cpp new file mode 100644 index 000000000000..1e5b2de1c2e5 --- /dev/null +++ b/mlir/lib/CAPI/Dialect/ControlFlow.cpp @@ -0,0 +1,14 @@ +//===- ControlFlow.cpp - C Interface for ControlFlow dialect --------------===// +// +// 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/Dialect/ControlFlow.h" +#include "mlir/CAPI/Registration.h" +#include "mlir/Dialect/ControlFlow/IR/ControlFlow.h" + +MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(ControlFlow, cf, + mlir::cf::ControlFlowDialect)