[mlir][core] Fix inline pass default pipeline dump
authorAhmed Harmouche <ahmedharmouche92@gmail.com>
Sat, 11 Mar 2023 17:07:42 +0000 (09:07 -0800)
committerJacques Pienaar <jpienaar@google.com>
Sat, 11 Mar 2023 17:18:11 +0000 (09:18 -0800)
commit9b8d9447f867dff29407fddeb4bed0f89bd4e9f7
tree480dcb236b5012bea4175805e149155714dcb68e
parent1ab46e5cf86c3799044b1c6a52a4f4b8a5280c09
[mlir][core] Fix inline pass default pipeline dump

The inliner pass performs canonicalization when created programtically, run with `mlir-opt` with default options, or when explicitly specified. However, when running the pipeline resulting from a `-dump-pass-pipeline` on a default inline pass, the canonicalization is not performed as part of the inlining. This is because the default value for the `default-pipeline` option of the inline pass is an empty string, and this is selected during the dumping. When `InlinerPass::initializeOptions` detects the empty string, it sets the `defaultPipeline` to `nullptr`, which was previously set to canonicalize in the `InlinerPass` constructor, thus the canonicalization is not performed.

The added test checks if the inline pass performs canonicalization by default, and that the dumped `default-pipeline` is set to `canonicalize`.

Fixes: https://github.com/llvm/llvm-project/issues/60960

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D145066
mlir/include/mlir/Transforms/Passes.td
mlir/test/Transforms/inlining-dump-default-pipeline.mlir [new file with mode: 0644]