[Mlir-commits] [mlir] [MLIR][Python] Support dialect conversion in python bindings (PR #177782)
Maksim Levental
llvmlistbot at llvm.org
Sun Jan 25 15:23:20 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;
+ }
+ unwrap(config)->foldingMode = cppMode;
+}
+
+MlirDialectConversionFoldingMode
+mlirConversionConfigGetFoldingMode(MlirConversionConfig config) {
+ switch (unwrap(config)->foldingMode) {
+ case mlir::DialectConversionFoldingMode::Never:
+ return MLIR_DIALECT_CONVERSION_FOLDING_MODE_NEVER;
+ case mlir::DialectConversionFoldingMode::BeforePatterns:
+ return MLIR_DIALECT_CONVERSION_FOLDING_MODE_BEFORE_PATTERNS;
+ case mlir::DialectConversionFoldingMode::AfterPatterns:
+ return MLIR_DIALECT_CONVERSION_FOLDING_MODE_AFTER_PATTERNS;
----------------
makslevental wrote:
```suggestion
return MLIR_DIALECT_CONVERSION_FOLDING_MODE_AFTER_PATTERNS;
default:
llvm::report_fatal_error("unhandled DialectConversionFoldingMode");
```
https://github.com/llvm/llvm-project/pull/177782
More information about the Mlir-commits
mailing list