tree 87f288f66c518e8829970be08c40178bf6b6a84e
parent c632ac3506731e394dd7e3ac3f3320f5442250b4
author Andrzej Warzyński <andrzej.warzynski@arm.com> 1747236755 +0100
committer GitHub <noreply@github.com> 1747236755 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoJLeTCRC1aQ7uu5UhlAAADpwQAKqe6CxuLJi+Ka806MMcnPP8
 ZeiTUsBgXiJQqZOd2hGEAS8m45rOO3sW2LHbmWiruS61oOBh8aXavj/aHVE9lOLD
 vj++7aWiR+RFm0V5yCb7J0Vu67FpZUN0PFrOk6Qg7GkpNvagCDd6PxRIk/r8MVtb
 YvvhtXr0jJtiLMoh2QliYJW0+RBxlS1iFn6Qm8WLBEs93AVpxk+eqD0nE6ooMKG6
 10CS7lHKbCT8JHp2c1p4A8tED7FmFR/KO8a6X7NIaxJJYu4fMs/9FYaviBs1vOTb
 fz8aZe3dOJy3yTIDCOluZkGhleosmmaF7leRjxi8CuzmYCPTLO5lA9j6o0akzaHg
 fT67ulXA+b1uiWNwaMEW1/tRt7Ip9JVEZQlLRzpJjr3kWS9d+sLXGmvD6Rsrs8x6
 zC8NbaWMZAjb2b8e0Z4di5cHuCKCo5iFAD8Au7PM4L9Xdv10yN8TGdDfB53/6RZN
 pFK/n70B2drtS7BUgBtNd9ZIL6x5J4/73bVMv8ygmeyc6FhQjgGfSscLeYzFVxnG
 F7ybsxOrUn33GhPg61Od+HcJjcw5XMIZycLOdBDSE/Mkbie6u2D2qnPLB6U/Te4S
 Ohggy3JMUxK6U1oR0HNaPHYG0hlgbj7xnsGs7EV/+Z0hB5T7Lye48jlPPHjfYmMP
 IfY5JqiU5m9W//8H1/AX
 =uqkg
 -----END PGP SIGNATURE-----
 

[mlir][vector] Refactor `createWriteOrMaskedWrite` (#138137)

This patch updates `createWriteOrMaskedWrite` to make it consistent with
`createReadOrMaskedRead`.

Before diving into the details: note that these utilities are currently
implemented in different files — "VectorUtils.cpp" (Vector) and
"Vectorization.cpp" (Linalg). In a subsequent patch, I plan to move
`createWriteOrMaskedWrite` into "VectorUtils.cpp".

SUMMARY OF CHANGES:

The main change is to remove the logic that creates the destination
tensor, which previously looked like:
```cpp
  Value dest = builder.create<tensor::EmptyOp>(loc, destSizes,
                                               inputType.getElementType());
```

With this patch, createWriteOrMaskedWrite now simply generates:
```mlir
  %res = vector.transfer_write %vectorToStore into %dest
```

This replaces the previous form:
```mlir
  %dest = tensor.empty(%destSizes)
  %res = vector.transfer_write %vectorToStore into %dest
```

In other words, the destination value `%dest` is now passed as an input
parameter. This makes `createWriteOrMaskedWrite` re-usable in contexts
where the destination tensor is already known — for example, in
`vectorizeAsInsertSliceOp`, which I will update in a follow-up patch.

OTHER CHANGES:

* Added comments and clarified TODOs.

* Updated tests: since destination sizes are now computed independently
  inside `createWriteOrMaskedWrite`, some additional `tensor.dim` ops
  appear. These will be cleaned up by CSE + canonicalization.