@@ -73,9 +73,34 @@ void mlir::python::populatePassManagerSubmodule(py::module &m) {
7373 " Releases (leaks) the backing pass manager (testing)" )
7474 .def (
7575 " enable_ir_printing" ,
76- [](PyPassManager &passManager) {
77- mlirPassManagerEnableIRPrinting (passManager.get ());
76+ [](PyPassManager &passManager, bool printBeforePass,
77+ bool printAfterPass, bool printModuleScope,
78+ bool printAfterOnlyOnChange, bool printAfterOnlyOnFailure,
79+ std::optional<int64_t > largeElementsLimit, bool enableDebugInfo,
80+ bool printGenericOpForm) {
81+ MlirOpPrintingFlags flags = mlirOpPrintingFlagsCreate ();
82+ if (largeElementsLimit)
83+ mlirOpPrintingFlagsElideLargeElementsAttrs (flags,
84+ *largeElementsLimit);
85+ if (enableDebugInfo)
86+ mlirOpPrintingFlagsEnableDebugInfo (flags, /* enable=*/ true ,
87+ /* prettyForm=*/ false );
88+ if (printGenericOpForm)
89+ mlirOpPrintingFlagsPrintGenericOpForm (flags);
90+ mlirPassManagerEnableIRPrinting (passManager.get (), printBeforePass,
91+ printAfterPass, printModuleScope,
92+ printAfterOnlyOnChange,
93+ printAfterOnlyOnFailure, flags);
94+ mlirOpPrintingFlagsDestroy (flags);
7895 },
96+ py::arg (" print_before_pass" ) = true ,
97+ py::arg (" print_after_pass" ) = true ,
98+ py::arg (" print_module_scope" ) = true ,
99+ py::arg (" print_after_only_on_change" ) = true ,
100+ py::arg (" print_after_only_on_failure" ) = false ,
101+ py::arg (" large_elements_limit" ) = py::none (),
102+ py::arg (" enable_debug_info" ) = false ,
103+ py::arg (" print_generic_op_form" ) = false ,
79104 " Enable mlir-print-ir-after-all." )
80105 .def (
81106 " enable_verifier" ,
0 commit comments