This is an archive of the discontinued LLVM Phabricator instance.

[mlir][vector] Lowering of transfers with out-of-bounds non-transfer dims
Changes PlannedPublic

Authored by springerm on Jul 14 2023, 8:38 AM.

Details

Summary

The starting point ("indices") of every transfer dimension may now be out-of-bounds, including non-transfer dimensions. (Negative starting points are still not allowed.)

An additional VectorToSCF pattern is added, which turns an out-of-bounds non-transfer dimension into an in-bounds transfer dimension by adding an scf.if check. (Such out-of-bounds ops are ignored by other patterns.)

Out-of-bounds starting points of transfer dimensions were already supported (by VectorToSCF in the (n>1)-D case and by the mask materialization pattern in the 1-D case). This revision merely adds new test cases for such ops.

Depends On: D155205

Diff Detail

Event Timeline

springerm created this revision.Jul 14 2023, 8:38 AM
Herald added a project: Restricted Project. · View Herald Transcript
springerm requested review of this revision.Jul 14 2023, 8:38 AM
Herald added a project: Restricted Project. · View Herald Transcript

Hey Matthias, could you please help me understand what transfer dimensions and non-transfer dimensions are? I can't parse this sentence combining both (maybe it's because it's a bit late over here :)): The starting point ("indices") of every transfer dimension may now be out-of-bounds, including non-transfer dimensions.

mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
178

typo: a -> an

springerm planned changes to this revision.Jul 19 2023, 8:58 AM

Putting this on hold for the moment. We may not need it.