[mlir][SCF] ValueBoundsOpInterface: Support `scf.for` results and iter_args
authorMatthias Springer <springerm@google.com>
Fri, 7 Apr 2023 02:43:41 +0000 (11:43 +0900)
committerMatthias Springer <springerm@google.com>
Fri, 7 Apr 2023 02:57:44 +0000 (11:57 +0900)
commitc3f5fd76d6d8322a33d6b526bf98d16e27456bfb
tree673147b5876035d3a352fe098f80fc31e9d81512
parent46e409cb1cd99b6b1a677922c2aa256802533cf3
[mlir][SCF] ValueBoundsOpInterface: Support `scf.for` results and iter_args

If an `scf.for` loop yields an equal index-typed value or a shaped value with the same dimension sizes (in comparison to the corresponding iter_arg), bounds can be computed for the iter_arg and the OpResult of the `scf.for` op.

Differential Revision: https://reviews.llvm.org/D146306
mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
mlir/lib/Dialect/Affine/Transforms/ReifyValueBounds.cpp
mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
mlir/test/Dialect/SCF/value-bounds-op-interface-impl.mlir
mlir/test/lib/Dialect/Affine/CMakeLists.txt
mlir/test/lib/Dialect/Affine/TestReifyValueBounds.cpp
utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel