[mlir] GreedyPatternRewriteDriver: Ignore scope when rewriting top-level ops
authorMatthias Springer <springerm@google.com>
Fri, 3 Feb 2023 08:44:42 +0000 (09:44 +0100)
committerMatthias Springer <springerm@google.com>
Fri, 3 Feb 2023 08:56:55 +0000 (09:56 +0100)
commit724a0e2c2d7a5724dd81b00db470ba4bb8b616ca
treec13de887ee043f5f9111d354d1282fad93807b10
parent4cda8e62671fd15b7ba14763b004199fdee9e18b
[mlir] GreedyPatternRewriteDriver: Ignore scope when rewriting top-level ops

Top-level ModuleOps cannot be transformed with the GreedyPatternRewriteDriver since D141945 because they do not have an enclosing region that could be used as a scope. Make the scope optional inside GreedyPatternRewriteDriver, so that top-level ops can be processed when they are on the initial list of ops.

Note: This does not allow users to bypass the scoping mechanism by setting `config.scope = nullptr`.

Fixes #60462.

Differential Revision: https://reviews.llvm.org/D143151
mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h
mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp