def METHOD_NAME(self, ctx: MLContext, op: builtin.ModuleOp) -> None:
    add_printf_call = PrintlnOpToPrintfCall()
    PatternRewriteWalker(add_printf_call).rewrite_module(op)
    op.body.block.add_ops(
        [
            llvm.FuncOp(
                "printf",
                llvm.LLVMFunctionType(
                    [llvm.LLVMPointerType.opaque()], is_variadic=True
                ),
                linkage=llvm.LinkageAttr("external"),
            ),
            *add_printf_call.collected_global_symbs.values(),
        ]
    )