[mlir][MemRef] Simplify extract_strided_metadata(allocLikeOp)
Teach the pass that simplifies extract_strided_metadata(other_op(memref)) how to get rid of extract_strided_metadata when they are fed by allocLikeOp. For the simplification to happen the allocLikeOp needs to have been normalized. I.e., no weird offset and strides. When this is the case, we replace: ``` base, offset, sizes, strides = extract_strided_metadata(allocLikeOp(allocSizes)) ``` With ``` base = reinterpret_cast allocLikeOp(allocSizes) to a flat memref<eltTy> offset = 0 sizes = allocSizes strides#i = prod(allocSizes#j, for j in {i+1..rank-1}) ``` The computation involving dynamic sizes are expanded in affine.apply. Differential Revision: https://reviews.llvm.org/D134577
Loading
Please sign in to comment