[mlir][affine][NFC] Extract core functionality of `canonicalizeMinMaxOp`
authorMatthias Springer <springerm@google.com>
Wed, 4 Jan 2023 09:56:43 +0000 (10:56 +0100)
committerMatthias Springer <springerm@google.com>
Wed, 4 Jan 2023 10:25:44 +0000 (11:25 +0100)
commit3a5811a33765534d27d7e6c2afee3e2ccb0550b2
tree19227f853a4c1ff0e454d38e4d97894100d7c24e
parent5bedd675d741b177606dae9f13cc7c1531b6b954
[mlir][affine][NFC] Extract core functionality of `canonicalizeMinMaxOp`

Move code from SCF to Affine: Add a new helper function `simplifyConstrainedMinMaxOp` to Affine/Analysis/Utils.h. `canonicalizeMinMaxOp` was originally designed for loop peeling, but it is not SCF-specific and can be used to simplify any affine.min/max ops.

Various functions in SCF/Transforms are simplified by dropping unnecessary parameters.

Differential Revision: https://reviews.llvm.org/D140962
mlir/include/mlir/Dialect/Affine/Analysis/Utils.h
mlir/include/mlir/Dialect/SCF/Utils/AffineCanonicalizationUtils.h
mlir/lib/Dialect/Affine/Analysis/CMakeLists.txt
mlir/lib/Dialect/Affine/Analysis/Utils.cpp
mlir/lib/Dialect/SCF/Transforms/LoopCanonicalization.cpp
mlir/lib/Dialect/SCF/Transforms/LoopSpecialization.cpp
mlir/lib/Dialect/SCF/Utils/AffineCanonicalizationUtils.cpp
utils/bazel/llvm-project-overlay/mlir/BUILD.bazel