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
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/lib/Dialect/Vector/VectorTransforms.cpp | ||
---|---|---|
679 | 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 | ||
---|---|---|
679 | 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 | ||
---|---|---|
42 | 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 | ||
---|---|---|
42 | Good point. I'll add it in a future patch if it is okay. |
Do you need the same here for TransferReadOp?