[Mlir-commits] [mlir] [mlir][affine] Add static basis support to affine.delinearize (PR #113846)
Jakub Kuderski
llvmlistbot at llvm.org
Mon Nov 4 09:31:24 PST 2024
================
@@ -1084,17 +1084,32 @@ def AffineDelinearizeIndexOp : Affine_Op<"delinearize_index",
```
}];
- let arguments = (ins Index:$linear_index, Variadic<Index>:$basis);
+ let arguments = (ins Index:$linear_index,
+ Variadic<Index>:$dynamic_basis,
+ DenseI64ArrayAttr:$static_basis);
let results = (outs Variadic<Index>:$multi_index);
let assemblyFormat = [{
- $linear_index `into` ` ` `(` $basis `)` attr-dict `:` type($multi_index)
+ $linear_index `into` ` `
+ custom<DynamicIndexList>($dynamic_basis, $static_basis, "::mlir::AsmParser::Delimiter::Paren")
+ attr-dict `:` type($multi_index)
}];
let builders = [
- OpBuilder<(ins "Value":$linear_index, "ArrayRef<OpFoldResult>":$basis)>
+ OpBuilder<(ins "Value":$linear_index, "ValueRange":$basis)>,
+ OpBuilder<(ins "Value":$linear_index, "ArrayRef<OpFoldResult>":$basis)>,
+ OpBuilder<(ins "Value":$linear_index, "ArrayRef<int64_t>":$basis)>
];
+ let extraClassDeclaration = [{
+ /// Return a vector with all the static and dynamic basis values.
+ SmallVector<OpFoldResult> getMixedBasis() {
+ OpBuilder builder(getContext());
+ return ::mlir::getMixedValues(getStaticBasis(), getDynamicBasis(), builder);
+ }
+
----------------
kuhar wrote:
```suggestion
```
https://github.com/llvm/llvm-project/pull/113846
More information about the Mlir-commits
mailing list