| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir] Use llvm::transform (NFC) (#167205) Identified with llvm-use-ranges. | 8 个月前 | |
[MLIR] Apply clang-tidy fixes for readability-container-size-empty in AffineOps.cpp (NFC) | 8 个月前 | |
[mlir][affine|ValueBounds] Add transform to simplify affine min max ops with ValueBoundsOpInterface (#145068) This commit makes the following changes: - Expose map and mapOperands in ValueBoundsConstraintSet::Variable, so that the class can be used by subclasses of ValueBoundsConstraintSet. Otherwise subclasses cannot access those members. - Add ValueBoundsConstraintSet::strongCompare. This method is similar to ValueBoundsConstraintSet::compare except that it returns false when the inverse comparison holds, and llvm::failure() if neither the relation nor its inverse relation could be proven. - Add simplifyAffineMinOp, simplifyAffineMaxOp, and simplifyAffineMinMaxOps to simplify those operations using ValueBoundsConstraintSet. - Adds the SimplifyMinMaxAffineOpsOp transform op that uses simplifyAffineMinMaxOps. - Add the test.value_with_bounds op to test unknown values with a min max range using ValueBoundsOpInterface. - Adds tests verifying the transform. Example: ``mlir func.func @overlapping_constraints() -> (index, index) { %0 = test.value_with_bounds {min = 0 : index, max = 192 : index} %1 = test.value_with_bounds {min = 128 : index, max = 384 : index} %2 = test.value_with_bounds {min = 256 : index, max = 512 : index} %r0 = affine.min affine_map<()[s0, s1, s2] -> (s0, s1, s2)>()[%0, %1, %2] %r1 = affine.max affine_map<()[s0, s1, s2] -> (s0, s1, s2)>()[%0, %1, %2] return %r0, %r1 : index, index } // Result of applying simplifyAffineMinMaxOps to func.func #map1 = affine_map<()[s0, s1] -> (s1, s0)> func.func @overlapping_constraints() -> (index, index) { %0 = test.value_with_bounds {max = 192 : index, min = 0 : index} %1 = test.value_with_bounds {max = 384 : index, min = 128 : index} %2 = test.value_with_bounds {max = 512 : index, min = 256 : index} %3 = affine.min #map1()[%0, %1] %4 = affine.max #map1()[%1, %2] return %3, %4 : index, index } `` --------- Co-authored-by: Nicolas Vasilache <Nico.Vasilache@amd.com> | 1 年前 | |
[mlir] Use llvm::copy (NFC) (#168213) Identified with llvm-use-ranges. | 8 个月前 | |
[mlir] Remove unused local variables (NFC) (#167107) Identified with bugprone-unused-local-non-trivial-variable. | 8 个月前 | |
[MLIR][Transform] Transform dialect support for affine Create the directory and file structures to support transform ops for the affine dialect in the future. Enable affine.unroll and affine.get_parent_for transform operations in this first batch of check in. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D137997 | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 3 年前 |