[Mlir-commits] [mlir] [MLIR][Python] Support Python-defined passes	in MLIR (PR #156000)
    Jakub Tucholski 
    llvmlistbot at llvm.org
       
    Mon Sep  8 09:21:51 PDT 2025
    
    
  
================
@@ -99,14 +99,24 @@ void mlir::python::populateRewriteSubmodule(nb::module_ &m) {
       .def(MLIR_PYTHON_CAPI_FACTORY_ATTR,
            &PyFrozenRewritePatternSet::createFromCapsule);
   m.def(
-      "apply_patterns_and_fold_greedily",
-      [](MlirModule module, MlirFrozenRewritePatternSet set) {
-        auto status = mlirApplyPatternsAndFoldGreedily(module, set, {});
-        if (mlirLogicalResultIsFailure(status))
-          // FIXME: Not sure this is the right error to throw here.
-          throw nb::value_error("pattern application failed to converge");
-      },
-      "module"_a, "set"_a,
-      "Applys the given patterns to the given module greedily while folding "
-      "results.");
+       "apply_patterns_and_fold_greedily",
+       [](MlirModule module, MlirFrozenRewritePatternSet set) {
+         auto status = mlirApplyPatternsAndFoldGreedily(module, set, {});
+         if (mlirLogicalResultIsFailure(status))
+           throw std::runtime_error("pattern application failed to converge");
+       },
+       "module"_a, "set"_a,
+       "Applys the given patterns to the given module greedily while folding "
+       "results.")
----------------
jakubtuchol wrote:
Some kind of explanation of how this works would help a lot. Doesn't have to be in this file, but I'm struggling to understand what this pass does from the description you've provided.
https://github.com/llvm/llvm-project/pull/156000
    
    
More information about the Mlir-commits
mailing list