Adding unroll support for transfer read and transfer write operation. This allow to pick the ideal size for the memory access for a given target.
Details
Diff Detail
Event Timeline
mlir/lib/Dialect/Vector/VectorTransforms.cpp | ||
---|---|---|
678 | Not sure I understand. Do you mean TransferWriteOp? TransferWriteOp is handled in a separate function since this function is meant to handle instructions with single result. |
mlir/lib/Dialect/Vector/VectorTransforms.cpp | ||
---|---|---|
678 | Ha ok, yes I cannot handle TransferWriteOp here as it has no result. That's why I had to handle it separately in the parent function. |
Looks good. Let's see if Nicolas has some feedback...
mlir/test/Dialect/Vector/vector-transfer-unroll.mlir | ||
---|---|---|
41 | At some point, it would be good have a test which captures your full use-case here. Unroll VTR/VTW to some vector size, then unroll vector.contract to a different vector size, and check that the final IR is what you expect. |
mlir/test/Dialect/Vector/vector-transfer-unroll.mlir | ||
---|---|---|
41 | Good point. I'll add it in a future patch if it is okay. |
Do you need the same here for TransferReadOp?