[mlir][Inliner] Refactor the inliner to use nested pass pipelines instead of just...
authorRiver Riddle <riddleriver@gmail.com>
Tue, 15 Dec 2020 02:07:45 +0000 (18:07 -0800)
committerRiver Riddle <riddleriver@gmail.com>
Tue, 15 Dec 2020 02:09:47 +0000 (18:09 -0800)
commitd7eba2005267aa4a8f46f73f208c7cc23e6c6a1a
tree457c4be41c12d1b4086fb61e7ab8de94e68978d4
parentf0cd6aa614f49bb0c66e65fdf6637222c982efe4
[mlir][Inliner] Refactor the inliner to use nested pass pipelines instead of just canonicalization

Now that passes have support for running nested pipelines, the inliner can now allow for users to provide proper nested pipelines to use for optimization during inlining. This revision also changes the behavior of optimization during inlining to optimize before attempting to inline, which should lead to a more accurate cost model and prevents the need for users to schedule additional duplicate cleanup passes before/after the inliner that would already be run during inlining.

Differential Revision: https://reviews.llvm.org/D91211
16 files changed:
llvm/include/llvm/ADT/Sequence.h
mlir/include/mlir/Pass/AnalysisManager.h
mlir/include/mlir/Pass/Pass.h
mlir/include/mlir/Pass/PassManager.h
mlir/include/mlir/Transforms/Passes.h
mlir/include/mlir/Transforms/Passes.td
mlir/lib/Pass/Pass.cpp
mlir/lib/Pass/PassDetail.h
mlir/lib/Pass/PassRegistry.cpp
mlir/lib/Pass/PassTiming.cpp
mlir/lib/Transforms/Inliner.cpp
mlir/test/Dialect/Affine/inlining.mlir
mlir/test/Dialect/SPIRV/Transforms/inlining.mlir
mlir/test/Pass/dynamic-pipeline-nested.mlir
mlir/test/Transforms/inlining.mlir
mlir/test/lib/Transforms/TestDynamicPipeline.cpp