summaryrefslogtreecommitdiff
path: root/mlir/test/python/python_pass.py
AgeCommit message (Collapse)Author
2025-09-09[MLIR][Python] Add the ability to signal pass failures in python-defined ↵Twice
passes (#157613) This is a follow-up PR for #156000. In this PR we add the ability to signal pass failures (`signal_pass_failure()`) in python-defined passes. To achieve this, we expose `MlirExternalPass` via `nb::class_` with a method `signal_pass_failure()`, and the callable passed to `pm.add(..)` now accepts two arguments (`op: MlirOperation, pass_: MlirExternalPass`). For example: ```python def custom_pass_that_fails(op, pass_): if some_condition: pass_.signal_pass_failure() # do something ```
2025-09-08[MLIR][Python] Support Python-defined passes in MLIR (#156000)Twice
It closes #155996. This PR added a method `add(callable, ..)` to `mlir.passmanager.PassManager` to accept a callable object for defining passes in the Python side. This is a simple example of a Python-defined pass. ```python from mlir.passmanager import PassManager def demo_pass_1(op): # do something with op pass class DemoPass: def __init__(self, ...): pass def __call__(op): # do something pass demo_pass_2 = DemoPass(..) pm = PassManager('any', ctx) pm.add(demo_pass_1) pm.add(demo_pass_2) pm.add("registered-passes") pm.run(..) ``` --------- Co-authored-by: cnb.bsD2OPwAgEA <QejD2DJ2eEahUVy6Zg0aZI+cnb.bsD2OPwAgEA@noreply.cnb.cool> Co-authored-by: Maksim Levental <maksim.levental@gmail.com>