This is an archive of the discontinued LLVM Phabricator instance.

[mlir][vector] generalized masked l/s and compressed l/s with indices
ClosedPublic

Authored by aartbik on Jan 7 2021, 5:28 PM.

Details

Summary

Adding the ability to index the base address brings these operations closer
to the transfer read and write semantics (with lowering advantages), ensures
more consistent use in vector MLIR code (easier to read), and reduces the
amount of code duplication to lower memrefs into base addresses considerably
(making codegen less error-prone).

Diff Detail

Event Timeline

aartbik created this revision.Jan 7 2021, 5:28 PM
aartbik requested review of this revision.Jan 7 2021, 5:28 PM
aartbik updated this revision to Diff 315449.Jan 8 2021, 10:50 AM

rebased with all the breaking changes that happened today....

ThomasRaoux added inline comments.Jan 8 2021, 11:33 AM
mlir/include/mlir/Dialect/Vector/VectorOps.td
1320

Does the number of indices have to match the memref rank? Do we need to check that in the verifier?

aartbik marked an inline comment as done.Jan 8 2021, 11:41 AM
aartbik added inline comments.
mlir/include/mlir/Dialect/Vector/VectorOps.td
1320

Yes that is a very sharp observation and indeed something that I was planning to add in the next CL (unified over all the memops). As is, this CL was getting quite large.

(I also plan to clean up scatter/gather format, using the same %base[%index] notation so that all our memory ops read the same)

ThomasRaoux accepted this revision.Jan 8 2021, 11:48 AM
This revision is now accepted and ready to land.Jan 8 2021, 11:48 AM
aartbik updated this revision to Diff 315483.Jan 8 2021, 12:16 PM
aartbik marked an inline comment as done.

rebased, more breaking changes were submitted