This change also adds support for affine.min and affine.max ops.
Depends On: D145696
Paths
| Differential D145787
[mlir][Interfaces] ValueBoundsOpInterface: Support LB and UB bounds ClosedPublic Authored by springerm on Mar 10 2023, 5:50 AM.
Details
Diff Detail
Event Timelinespringerm added a parent revision: D145696: [mlir][Arith] Add ValueBoundsOpInterface impls.Mar 10 2023, 5:50 AM springerm edited parent revisions, added: D145796: [mlir][affine][analysis] Fix `getClosedUB` handling in `getSliceBounds`; removed: D145696: [mlir][Arith] Add ValueBoundsOpInterface impls. springerm added a child revision: D145804: [mlir][SCF] Add ValueBoundsOpInterface impl for scf.for.Mar 10 2023, 9:02 AM springerm retitled this revision from [mlir][linalg] ValueBoundsOpInterface: Support LB and UB bounds to [mlir][Interfaces] ValueBoundsOpInterface: Support LB and UB bounds.Mar 16 2023, 8:16 AM springerm edited parent revisions, added: D145696: [mlir][Arith] Add ValueBoundsOpInterface impls; removed: D145796: [mlir][affine][analysis] Fix `getClosedUB` handling in `getSliceBounds`.
This revision is now accepted and ready to land.Apr 6 2023, 1:24 PM Closed by commit rG041bc485bf21: [mlir][Interfaces] ValueBoundsOpInterface: Support LB and UB bounds (authored by springerm). · Explain WhyApr 6 2023, 6:53 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 511586 mlir/include/mlir/Dialect/Affine/Transforms/Transforms.h
mlir/lib/Dialect/Affine/IR/ValueBoundsOpInterfaceImpl.cpp
mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
mlir/test/Dialect/Affine/value-bounds-op-interface-impl.mlir
mlir/test/lib/Dialect/Affine/TestReifyValueBounds.cpp
|
Note: FlatLinearConstraints sometimes returns an affine_map with multiple results when requesting LB/UB bounds. These cases are not yet supported, so we just assert for now. We can add support when needed. (It won't be difficult, we just have to emit an affine.min/affine.max instead of affine.apply.)