[Mlir-commits] [mlir] [mlir][fold-memref-alias-ops] Add support for folding memref.expand_shape involving dynamic dims (PR #89093)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Sun May 5 19:40:28 PDT 2024
MaheshRavishankar wrote:
IIUC what you are trying to do is effectively this
```
SmallVector<OpFoldResult> sizes = ....
AffineExpr s0, s1;
bindSymbol(builder.getContext(), s0, s1);
OpFoldResult product = builder.getIndexAttr(1);
SmallVector<OpFoldResult> suffixProduct(sizes.size());
int index = sizes.size() - 1;
suffixProduct[index--] = product;
for (auto size : llvm::reverse(sizes.drop_front())) {
product = affine::makeComposedFoldedAffineApply(builder, loc, s0 * s1, {product, size});
suffixProduct[index--] = product;
}
return suffixProduct.
```
The mixed static dynamic cases will all be handled automatically? and the `sizes` is what is returned by the `inferOutputShape`. I dont see why the logic needs to be duplicated.
https://github.com/llvm/llvm-project/pull/89093
More information about the Mlir-commits
mailing list