[Mlir-commits] [mlir] d52a5e8 - [MLIR] convert ConvertToEmitCPatternInterface to ODS (#188621)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Tue Mar 31 20:30:16 PDT 2026
Author: AidinT
Date: 2026-04-01T05:30:12+02:00
New Revision: d52a5e8a5ac47fea1b1d82669eb7d1bf5283d147
URL: https://github.com/llvm/llvm-project/commit/d52a5e8a5ac47fea1b1d82669eb7d1bf5283d147
DIFF: https://github.com/llvm/llvm-project/commit/d52a5e8a5ac47fea1b1d82669eb7d1bf5283d147.diff
LOG: [MLIR] convert ConvertToEmitCPatternInterface to ODS (#188621)
This PR converts `ConvertToEmitCPatternInterface` dialect interface to ODS. Also makes changes to derived classes.
Added:
mlir/include/mlir/Conversion/ConvertToEmitC/CMakeLists.txt
mlir/include/mlir/Conversion/ConvertToEmitC/ConvertToEmitCPatternInterface.td
Modified:
mlir/include/mlir/Conversion/CMakeLists.txt
mlir/include/mlir/Conversion/ConvertToEmitC/ToEmitCInterface.h
mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt
mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp
mlir/lib/Conversion/SCFToEmitC/SCFToEmitC.cpp
utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Removed:
################################################################################
diff --git a/mlir/include/mlir/Conversion/CMakeLists.txt b/mlir/include/mlir/Conversion/CMakeLists.txt
index 602c8ff72fbae..209f35d3774ec 100644
--- a/mlir/include/mlir/Conversion/CMakeLists.txt
+++ b/mlir/include/mlir/Conversion/CMakeLists.txt
@@ -8,3 +8,4 @@ add_mlir_generic_tablegen_target(MLIRConversionPassIncGen)
add_mlir_doc(Passes ConversionPasses ./ -gen-pass-doc)
add_subdirectory(ConvertToLLVM)
+add_subdirectory(ConvertToEmitC)
diff --git a/mlir/include/mlir/Conversion/ConvertToEmitC/CMakeLists.txt b/mlir/include/mlir/Conversion/ConvertToEmitC/CMakeLists.txt
new file mode 100644
index 0000000000000..d748d3bde2b76
--- /dev/null
+++ b/mlir/include/mlir/Conversion/ConvertToEmitC/CMakeLists.txt
@@ -0,0 +1,3 @@
+set(LLVM_TARGET_DEFINITIONS ConvertToEmitCPatternInterface.td)
+mlir_tablegen(ConvertToEmitCPatternInterface.h.inc -gen-dialect-interface-decls)
+add_mlir_generic_tablegen_target(MLIRConvertToEmitCPatternInterfaceIncGen)
diff --git a/mlir/include/mlir/Conversion/ConvertToEmitC/ConvertToEmitCPatternInterface.td b/mlir/include/mlir/Conversion/ConvertToEmitC/ConvertToEmitCPatternInterface.td
new file mode 100644
index 0000000000000..e300826cdc281
--- /dev/null
+++ b/mlir/include/mlir/Conversion/ConvertToEmitC/ConvertToEmitCPatternInterface.td
@@ -0,0 +1,22 @@
+#ifndef MLIR_INTERFACES_CONVERTTOEMITCPATTERNINTERFACE
+#define MLIR_INTERFACES_CONVERTTOEMITCPATTERNINTERFACE
+
+include "mlir/IR/Interfaces.td"
+
+def ConvertToEmitCPatternInterface : DialectInterface<"ConvertToEmitCPatternInterface"> {
+ let description = [{}];
+ let cppNamespace = "::mlir";
+
+ let methods = [
+ PureVirtualInterfaceMethod<[{
+ Hook for derived dialect interface to provide conversion patterns
+ and mark dialect legal for the conversion target.
+ }],
+ "void", "populateConvertToEmitCConversionPatterns",
+ (ins "::mlir::ConversionTarget &":$target, "::mlir::TypeConverter &":$typeConverter,
+ "::mlir::RewritePatternSet &":$patterns)
+ >
+ ];
+}
+
+#endif
diff --git a/mlir/include/mlir/Conversion/ConvertToEmitC/ToEmitCInterface.h b/mlir/include/mlir/Conversion/ConvertToEmitC/ToEmitCInterface.h
index d438f27006232..f6546fc27e0b3 100644
--- a/mlir/include/mlir/Conversion/ConvertToEmitC/ToEmitCInterface.h
+++ b/mlir/include/mlir/Conversion/ConvertToEmitC/ToEmitCInterface.h
@@ -20,19 +20,6 @@ class MLIRContext;
class Operation;
class RewritePatternSet;
class AnalysisManager;
-
-class ConvertToEmitCPatternInterface
- : public DialectInterface::Base<ConvertToEmitCPatternInterface> {
-public:
- ConvertToEmitCPatternInterface(Dialect *dialect) : Base(dialect) {}
-
- /// Hook for derived dialect interface to provide conversion patterns
- /// and mark dialect legal for the conversion target.
- virtual void populateConvertToEmitCConversionPatterns(
- ConversionTarget &target, TypeConverter &typeConverter,
- RewritePatternSet &patterns) const = 0;
-};
-
/// Recursively walk the IR and collect all dialects implementing the interface,
/// and populate the conversion patterns.
void populateConversionTargetFromOperation(Operation *op,
@@ -42,4 +29,6 @@ void populateConversionTargetFromOperation(Operation *op,
} // namespace mlir
+#include "mlir/Conversion/ConvertToEmitC/ConvertToEmitCPatternInterface.h.inc"
+
#endif // MLIR_CONVERSION_CONVERTTOEMITC_TOEMITCINTERFACE_H
diff --git a/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp b/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
index 02091a407ac11..d003dc7a6dff3 100644
--- a/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
+++ b/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
@@ -26,7 +26,8 @@ using namespace mlir;
namespace {
/// Implement the interface to convert Arith to EmitC.
struct ArithToEmitCDialectInterface : public ConvertToEmitCPatternInterface {
- using ConvertToEmitCPatternInterface::ConvertToEmitCPatternInterface;
+ ArithToEmitCDialectInterface(Dialect *dialect)
+ : ConvertToEmitCPatternInterface(dialect) {}
/// Hook for derived dialect interface to provide conversion patterns
/// and mark dialect legal for the conversion target.
diff --git a/mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt b/mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt
index e0d766570d5eb..014ab26345033 100644
--- a/mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt
+++ b/mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt
@@ -6,6 +6,7 @@ add_mlir_conversion_library(MLIRConvertToEmitC
DEPENDS
MLIRConversionPassIncGen
+ MLIRConvertToEmitCPatternInterfaceIncGen
LINK_LIBS PUBLIC
MLIRArithToEmitC
diff --git a/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp b/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
index 197caeb4ffbfa..d2fb359c9aabe 100644
--- a/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
+++ b/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
@@ -24,7 +24,8 @@ namespace {
/// Implement the interface to convert Func to EmitC.
struct FuncToEmitCDialectInterface : public ConvertToEmitCPatternInterface {
- using ConvertToEmitCPatternInterface::ConvertToEmitCPatternInterface;
+ FuncToEmitCDialectInterface(Dialect *dialect)
+ : ConvertToEmitCPatternInterface(dialect) {}
/// Hook for derived dialect interface to provide conversion patterns
/// and mark dialect legal for the conversion target.
diff --git a/mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp b/mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp
index 87125b39e4666..b8924c63adf09 100644
--- a/mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp
+++ b/mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp
@@ -37,7 +37,8 @@ static bool isMemRefTypeLegalForEmitC(MemRefType memRefType) {
namespace {
/// Implement the interface to convert MemRef to EmitC.
struct MemRefToEmitCDialectInterface : public ConvertToEmitCPatternInterface {
- using ConvertToEmitCPatternInterface::ConvertToEmitCPatternInterface;
+ MemRefToEmitCDialectInterface(Dialect *dialect)
+ : ConvertToEmitCPatternInterface(dialect) {}
/// Hook for derived dialect interface to provide conversion patterns
/// and mark dialect legal for the conversion target.
diff --git a/mlir/lib/Conversion/SCFToEmitC/SCFToEmitC.cpp b/mlir/lib/Conversion/SCFToEmitC/SCFToEmitC.cpp
index 07feba7e565d9..d7c943ef7c4f1 100644
--- a/mlir/lib/Conversion/SCFToEmitC/SCFToEmitC.cpp
+++ b/mlir/lib/Conversion/SCFToEmitC/SCFToEmitC.cpp
@@ -35,7 +35,8 @@ namespace {
/// Implement the interface to convert SCF to EmitC.
struct SCFToEmitCDialectInterface : public ConvertToEmitCPatternInterface {
- using ConvertToEmitCPatternInterface::ConvertToEmitCPatternInterface;
+ SCFToEmitCDialectInterface(Dialect *dialect)
+ : ConvertToEmitCPatternInterface(dialect) {}
/// Hook for derived dialect interface to provide conversion patterns
/// and mark dialect legal for the conversion target.
diff --git a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
index 76657b8d6ce5c..b3c602b4f824f 100644
--- a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
@@ -8225,12 +8225,23 @@ cc_library(
],
)
+gentbl_cc_library(
+ name = "ConvertToEmitCPatternInterfaceIncGen",
+ tbl_outs = {
+ "include/mlir/Conversion/ConvertToEmitC/ConvertToEmitCPatternInterface.h.inc": ["-gen-dialect-interface-decls"],
+ },
+ tblgen = ":mlir-tblgen",
+ td_file = "include/mlir/Conversion/ConvertToEmitC/ConvertToEmitCPatternInterface.td",
+ deps = [":OpBaseTdFiles"],
+)
+
cc_library(
name = "ConvertToEmitCInterface",
hdrs = ["include/mlir/Conversion/ConvertToEmitC/ToEmitCInterface.h"],
includes = ["include"],
deps = [
":ConversionPassIncGen",
+ ":ConvertToEmitCPatternInterfaceIncGen",
":IR",
"//llvm:Support",
],
More information about the Mlir-commits
mailing list