diff options
author | Matthias Springer <springerm@google.com> | 2021-03-31 14:59:30 +0900 |
---|---|---|
committer | Matthias Springer <springerm@google.com> | 2021-03-31 18:04:22 +0900 |
commit | 95f813504386aab17b16759602a37b0686115a1e (patch) | |
tree | f3c765478ef3707914519bf4c614de9ee196ae2a /mlir/lib/Conversion/VectorToLLVM | |
parent | b5995fced41de0885a5ef8f1b8a25ef45d8be711 (diff) |
[mlir] Change vector.transfer_read/write "masked" attribute to "in_bounds".
This is in preparation for adding a new "mask" operand. The existing "masked" attribute was used to specify dimensions that may be out-of-bounds. Such transfers can be lowered to masked load/stores. The new "in_bounds" attribute is used to specify dimensions that are guaranteed to be within bounds. (Semantics is inverted.)
Differential Revision: https://reviews.llvm.org/D99639
Diffstat (limited to 'mlir/lib/Conversion/VectorToLLVM')
-rw-r--r-- | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp b/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp index 24c5092894f0..82e4bc2f4353 100644 --- a/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp +++ b/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp @@ -1248,14 +1248,15 @@ public: Value vectorDataPtr = castDataPtr(rewriter, loc, dataPtr, memRefType, toLLVMTy(vtp)); - if (!xferOp.isMaskedDim(0)) + if (xferOp.isDimInBounds(0)) return replaceTransferOpWithLoadOrStore(rewriter, *this->getTypeConverter(), loc, xferOp, operands, vectorDataPtr); // 2. Create a vector with linear indices [ 0 .. vector_length - 1 ]. // 3. Create offsetVector = [ offset + 0 .. offset + vector_length - 1 ]. - // 4. Let dim the memref dimension, compute the vector comparison mask: + // 4. Let dim the memref dimension, compute the vector comparison mask + // (in-bounds mask): // [ offset + 0 .. offset + vector_length - 1 ] < [ dim .. dim ] // // TODO: when the leaf transfer rank is k > 1, we need the last `k` |