[Mlir-commits] [mlir] [MLIR][Python] Support dialect conversion in python bindings (PR #177782)

Maksim Levental llvmlistbot at llvm.org
Sun Jan 25 15:22:21 PST 2026


================
@@ -439,6 +441,73 @@ void mlirWalkAndApplyPatterns(MlirOperation op,
   mlir::walkAndApplyPatterns(unwrap(op), *unwrap(patterns));
 }
 
+MlirLogicalResult
+mlirApplyPartialConversion(MlirOperation op, MlirConversionTarget target,
+                           MlirFrozenRewritePatternSet patterns,
+                           MlirConversionConfig config) {
+  return wrap(mlir::applyPartialConversion(unwrap(op), *unwrap(target),
+                                           *unwrap(patterns), *unwrap(config)));
+}
+
+MlirLogicalResult mlirApplyFullConversion(MlirOperation op,
+                                          MlirConversionTarget target,
+                                          MlirFrozenRewritePatternSet patterns,
+                                          MlirConversionConfig config) {
+  return wrap(mlir::applyFullConversion(unwrap(op), *unwrap(target),
+                                        *unwrap(patterns), *unwrap(config)));
+}
+
+//===----------------------------------------------------------------------===//
+/// ConversionConfig API
+//===----------------------------------------------------------------------===//
+
+MlirConversionConfig mlirConversionConfigCreate(void) {
+  return wrap(new mlir::ConversionConfig());
+}
+
+void mlirConversionConfigDestroy(MlirConversionConfig config) {
+  delete unwrap(config);
+}
+
+void mlirConversionConfigSetFoldingMode(MlirConversionConfig config,
+                                        MlirDialectConversionFoldingMode mode) {
+  mlir::DialectConversionFoldingMode cppMode;
+  switch (mode) {
+  case MLIR_DIALECT_CONVERSION_FOLDING_MODE_NEVER:
+    cppMode = mlir::DialectConversionFoldingMode::Never;
+    break;
+  case MLIR_DIALECT_CONVERSION_FOLDING_MODE_BEFORE_PATTERNS:
+    cppMode = mlir::DialectConversionFoldingMode::BeforePatterns;
+    break;
+  case MLIR_DIALECT_CONVERSION_FOLDING_MODE_AFTER_PATTERNS:
+    cppMode = mlir::DialectConversionFoldingMode::AfterPatterns;
+    break;
----------------
makslevental wrote:

nit:
```suggestion
    break;
  default:
    llvm::report_fatal_error("unhandled DialectConversionFoldingMode");
```

https://github.com/llvm/llvm-project/pull/177782


More information about the Mlir-commits mailing list