| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][vector] Refine Vector to LLVM lowering options (#159553) This is a follow-up to https://github.com/llvm/llvm-project/pull/144307, where we removed vector.matrix_multiply and vector.flat_transpose from the Vector dialect. This PR: * Updates comments that were missed in the previous change. * Renames relevant -convert-vector-to-llvm= options: - vector-contract-lowering=matmul → vector-contract-lowering=llvmintr - vector-transpose-lowering=flat_transpose → vector-transpose-lowering=llvmintr These new names better reflect the actual transformation target - LLVM intrinsics - rather than the now-removed abstract operations. | 10 个月前 | |
[mlir][vector] Propagate alignment from vector to llvm dialects. (#153482) Allows alignment to be propagated correctly from vector to LLVM dialect operations. | 10 个月前 | |
[mlir][Vector] Move mask materialization patterns to greedy rewrite (#119973) The mask materialization patterns during VectorToLLVM are rewrite patterns. They should run as part of the greedy pattern rewrite and not the dialect conversion. (Rewrite patterns and conversion patterns are not generally compatible.) The current combination of rewrite patterns and conversion patterns triggered an edge case when merging the 1:1 and 1:N dialect conversions. | 1 年前 | |
[MLIR][VectorToLLVM] Handle scalable dim in createVectorLengthValue() (#93361) LLVM's Vector Predication Intrinsics require an explicit vector length parameter: https://llvm.org/docs/LangRef.html#vector-predication-intrinsics. For a scalable vector type, this should be caculated as VectorScaleOp multiplied by base vector length, e.g.: for <[4]xf32> we should return: vscale * 4. | 2 年前 | |
[mlir][Transforms][NFC] Dialect Conversion: Resolve insertion point TODO (#95653) Remove a TODO in the dialect conversion code base when materializing unresolved conversions: // FIXME: Determine a suitable insertion location when there are multiple // inputs. The implementation used to select an insertion point as follows: - If the cast has exactly one operand: right after the definition of the SSA value. - Otherwise: right before the cast op. However, it is not necessary to change the insertion point. Unresolved materializations (UnrealizedConversionCastOp) are built during buildUnresolvedArgumentMaterialization or buildUnresolvedTargetMaterialization. In the former case, the op is inserted at the beginning of the block. In the latter case, only one operand is supported in the dialect conversion, and the op is inserted right after the definition of the SSA value. I.e., the UnrealizedConversionCastOp is already inserted at the right place and it is not necessary to change the insertion point for the resolved materialization op. Note: The IR change changes slightly because the unrealized_conversion_cast ops at the beginning of a block are no longer doubly-inverted (by setting the insertion to the beginning of the block when inserting the unrealized_conversion_cast and again when inserting the resolved conversion op). All affected test cases were fixed by using CHECK-DAG instead of CHECK. Also improve the quality of multiple test cases that did not check for the correct operands. Note: This commit is in preparation of decoupling the argument/source/target materialization logic of the type converter from the dialect conversion (to reduce its complexity and make that functionality usable from a new dialect conversion driver). | 2 年前 | |
[MLIR][Vector] Remove vector.splat (#162167) vector.splat has been deprecated (user: please use the very similar vector.broadcast instead) with the last PR landing about 6 weeks ago. The discourse discussion is at https://discourse.llvm.org/t/rfc-mlir-vector-deprecate-then-remove-vector-splat/87143/1 The last PR was #152230 This PR completely removes vector.splat. In addition to removing vector.splat from VectorOps.td, it - Updates the few remaining places where vector::SplatOp is created (now vector::BroadcastOp is created) - Removes temporary patterns where vector.splat is replaced by vector.broadcast The only place 'vector.splat' appears is now the files https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/test/corpus/op.txt and https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/dialect/vector.js --------- Signed-off-by: James Newling <james.newling@gmail.com> | 9 个月前 | |
[MLIR][Conversion] Vector to LLVM: Remove unneeded vector shuffle (#162946) if vector.broadcast source is a scalar and target is a single element 1D vector. | 9 个月前 | |
[mlir][Vector] Move mask materialization patterns to greedy rewrite (#119973) The mask materialization patterns during VectorToLLVM are rewrite patterns. They should run as part of the greedy pattern rewrite and not the dialect conversion. (Rewrite patterns and conversion patterns are not generally compatible.) The current combination of rewrite patterns and conversion patterns triggered an edge case when merging the 1:1 and 1:N dialect conversions. | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 10 个月前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 1 年前 |