[all-commits] [llvm/llvm-project] c2fb9c: [mlir:Pass] Add support for op-agnostic pass managers
River Riddle via All-commits
all-commits at lists.llvm.org
Thu May 12 13:13:23 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c2fb9c29b4076da8f68a27df2bee4a2f3c81c830
https://github.com/llvm/llvm-project/commit/c2fb9c29b4076da8f68a27df2bee4a2f3c81c830
Author: River Riddle <riddleriver at gmail.com>
Date: 2022-05-12 (Thu, 12 May 2022)
Changed paths:
M mlir/docs/PassManagement.md
M mlir/include/mlir/Pass/PassInstrumentation.h
M mlir/include/mlir/Pass/PassManager.h
M mlir/lib/Pass/Pass.cpp
M mlir/lib/Pass/PassDetail.h
M mlir/lib/Pass/PassRegistry.cpp
M mlir/lib/Pass/PassStatistics.cpp
M mlir/lib/Pass/PassTiming.cpp
M mlir/lib/Transforms/Inliner.cpp
A mlir/test/Pass/generic-pipeline.mlir
M mlir/test/Pass/pipeline-parsing.mlir
Log Message:
-----------
[mlir:Pass] Add support for op-agnostic pass managers
This commit refactors the current pass manager support to allow for
operation agnostic pass managers. This allows for a series of passes
to be executed on any viable pass manager root operation, instead
of one specific operation type. Op-agnostic/generic pass managers
only allow for adding op-agnostic passes.
These types of pass managers are extremely useful when constructing
pass pipelines that can apply to many different types of operations,
e.g., the default inliner simplification pipeline. With the advent of
interface/trait passes, this support can be used to define FunctionOpInterface
pass managers, or other pass managers that effectively operate on
specific interfaces/traits/etc (see #52916 for an example).
Differential Revision: https://reviews.llvm.org/D123536
More information about the All-commits
mailing list