[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