This is an archive of the discontinued LLVM Phabricator instance.

[mlir][vector] Remove vector.transfer_read/write to LLVM lowering
ClosedPublic

Authored by springerm on Jul 15 2021, 6:41 PM.

Details

Summary

This simplifies the vector to LLVM lowering. Previously, both vector.load/store and vector.transfer_read/write lowered directly to LLVM. With this commit, there is a single path to LLVM vector load/store instructions and vector.transfer_read/write ops must first be lowered to vector.load/store ops.

  • Remove vector.transfer_read/write to LLVM lowering.
  • Allow non-unit memref strides on all but the most minor dimension for vector.load/store ops.
  • Add maxTransferRank option to populateVectorTransferLoweringPatterns.
  • vector.transfer_reads with changing element type can no longer be lowered to LLVM. (This functionality is needed only for SPIRV.)

Depends On D106117

Diff Detail

Event Timeline

springerm created this revision.Jul 15 2021, 6:41 PM
springerm requested review of this revision.Jul 15 2021, 6:41 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 15 2021, 6:41 PM
nicolasvasilache accepted this revision.Jul 16 2021, 4:06 AM

Nice refactoring, thanks @springerm !

This revision is now accepted and ready to land.Jul 16 2021, 4:06 AM