[CAPI] disambiguate mlirRegisterConversionPasses (#8072)

This commit is contained in:
Maksim Levental 2025-01-13 16:40:28 -05:00 committed by GitHub
parent f17af932f5
commit ca92024004
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 59 additions and 10 deletions

View File

@ -7,6 +7,7 @@
#include "mlir-c/Support.h" #include "mlir-c/Support.h"
#include "circt/Conversion/Conversion.capi.h.inc"
#include "mlir/Conversion/Passes.capi.h.inc" #include "mlir/Conversion/Passes.capi.h.inc"
#endif // CIRCT_C_CONVERSION_H #endif // CIRCT_C_CONVERSION_H

View File

@ -0,0 +1,12 @@
//===-- circt-c/Transform.h - C API for dialect transforms --------*- C -*-===//
//
//===----------------------------------------------------------------------===//
#ifndef CIRCT_C_TRANSFORMS_H
#define CIRCT_C_TRANSFORMS_H
#include "mlir-c/Support.h"
#include "circt/Transforms/Transforms.capi.h.inc"
#endif // CIRCT_C_TRANSFORMS_H

View File

@ -1,7 +1,7 @@
set(LLVM_TARGET_DEFINITIONS Passes.td) set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Conversion) mlir_tablegen(Passes.h.inc -gen-pass-decls -name CIRCTConversion)
mlir_tablegen(Conversion.capi.h.inc -gen-pass-capi-header --prefix Conversion) mlir_tablegen(Conversion.capi.h.inc -gen-pass-capi-header --prefix CIRCTConversion)
mlir_tablegen(Conversion.capi.cpp.inc -gen-pass-capi-impl --prefix Conversion) mlir_tablegen(Conversion.capi.cpp.inc -gen-pass-capi-impl --prefix CIRCTConversion)
add_public_tablegen_target(CIRCTConversionPassIncGen) add_public_tablegen_target(CIRCTConversionPassIncGen)
add_circt_doc(Passes CIRCTConversionPasses -gen-pass-doc) add_circt_doc(Passes CIRCTConversionPasses -gen-pass-doc)

View File

@ -47,10 +47,10 @@ namespace circt {
inline void registerAllPasses() { inline void registerAllPasses() {
// Conversion Passes // Conversion Passes
registerConversionPasses(); registerCIRCTConversionPasses();
// Transformation passes // Transformation passes
registerTransformsPasses(); registerCIRCTTransformsPasses();
// LEC transformation passes // LEC transformation passes
registerLECTransformsPasses(); registerLECTransformsPasses();

View File

@ -1,8 +1,8 @@
set(LLVM_TARGET_DEFINITIONS Passes.td) set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Transforms) mlir_tablegen(Passes.h.inc -gen-pass-decls -name CIRCTTransforms)
mlir_tablegen(Transforms.capi.h.inc -gen-pass-capi-header --prefix Transforms) mlir_tablegen(Transforms.capi.h.inc -gen-pass-capi-header --prefix CIRCTTransforms)
mlir_tablegen(Transforms.capi.cpp.inc -gen-pass-capi-impl --prefix Transforms) mlir_tablegen(Transforms.capi.cpp.inc -gen-pass-capi-impl --prefix CIRCTTransforms)
add_public_tablegen_target(CIRCTTransformsPassIncGen) add_public_tablegen_target(CIRCTTransformsPassIncGen)
add_mlir_doc(Passes CIRCTGeneralPasses ./ -gen-pass-doc) add_mlir_doc(Passes CIRCTGeneralPasses ./ -gen-pass-doc)

View File

@ -23,6 +23,7 @@
#include "circt-c/Dialect/MSFT.h" #include "circt-c/Dialect/MSFT.h"
#include "circt-c/Dialect/OM.h" #include "circt-c/Dialect/OM.h"
#include "circt-c/Dialect/RTG.h" #include "circt-c/Dialect/RTG.h"
#include "circt-c/Transforms.h"
#ifdef CIRCT_INCLUDE_TESTS #ifdef CIRCT_INCLUDE_TESTS
#include "circt-c/Dialect/RTGTest.h" #include "circt-c/Dialect/RTGTest.h"
#endif #endif
@ -53,8 +54,9 @@ static void registerPasses() {
registerHWArithPasses(); registerHWArithPasses();
registerHWPasses(); registerHWPasses();
registerHandshakePasses(); registerHandshakePasses();
mlirRegisterConversionPasses(); mlirRegisterCIRCTConversionPasses();
mlirRegisterTransformsPasses(); mlirRegisterCIRCTTransformsPasses();
mlirRegisterTransformsCSE();
} }
PYBIND11_MODULE(_circt, m) { PYBIND11_MODULE(_circt, m) {

View File

@ -51,6 +51,9 @@ set(PYTHON_BINDINGS_LINK_LIBS
CIRCTCAPISMT CIRCTCAPISMT
CIRCTCAPISV CIRCTCAPISV
CIRCTCAPIVerif CIRCTCAPIVerif
CIRCTCAPITransforms
# needed for mlirFrozenRewritePatternSetDestroy
# but not the actual passes
MLIRCAPITransforms MLIRCAPITransforms
) )

View File

@ -4,3 +4,4 @@ add_subdirectory(ExportVerilog)
add_subdirectory(Dialect) add_subdirectory(Dialect)
add_subdirectory(Firtool) add_subdirectory(Firtool)
add_subdirectory(RtgTool) add_subdirectory(RtgTool)
add_subdirectory(Transforms)

View File

@ -0,0 +1,6 @@
add_circt_public_c_api_library(CIRCTCAPITransforms
Transforms.cpp
LINK_LIBS PUBLIC
CIRCTTransforms
)

View File

@ -0,0 +1,24 @@
//===- Transforms.cpp - C API for Transforms Passes -----------------------===//
//
// 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 "circt-c/Transforms.h"
#include "circt/Transforms/Passes.h"
#include "mlir/CAPI/Pass.h"
#include "mlir/Pass/Pass.h"
using namespace circt;
#ifdef __cplusplus
extern "C" {
#endif
#include "circt/Transforms/Transforms.capi.cpp.inc"
#ifdef __cplusplus
}
#endif