@@ -3792,7 +3792,7 @@ void ExtractStridedSliceOp::getCanonicalizationPatterns(
37923792void TransferReadOp::build (OpBuilder &builder, OperationState &result,
37933793 VectorType vectorType, Value source,
37943794 ValueRange indices, AffineMapAttr permutationMapAttr,
3795- /* optional*/ ArrayAttr inBoundsAttr) {
3795+ /* optional*/ DenseBoolArrayAttr inBoundsAttr) {
37963796 Type elemType = llvm::cast<ShapedType>(source.getType ()).getElementType ();
37973797 Value padding = builder.create <arith::ConstantOp>(
37983798 result.location , elemType, builder.getZeroAttr (elemType));
@@ -3807,8 +3807,8 @@ void TransferReadOp::build(OpBuilder &builder, OperationState &result,
38073807 std::optional<ArrayRef<bool >> inBounds) {
38083808 auto permutationMapAttr = AffineMapAttr::get (permutationMap);
38093809 auto inBoundsAttr = (inBounds && !inBounds.value ().empty ())
3810- ? builder.getBoolArrayAttr (inBounds.value ())
3811- : builder.getBoolArrayAttr (
3810+ ? builder.getDenseBoolArrayAttr (inBounds.value ())
3811+ : builder.getDenseBoolArrayAttr (
38123812 SmallVector<bool >(vectorType.getRank (), false ));
38133813 build (builder, result, vectorType, source, indices, permutationMapAttr,
38143814 inBoundsAttr);
@@ -3823,8 +3823,8 @@ void TransferReadOp::build(OpBuilder &builder, OperationState &result,
38233823 llvm::cast<ShapedType>(source.getType ()), vectorType);
38243824 auto permutationMapAttr = AffineMapAttr::get (permutationMap);
38253825 auto inBoundsAttr = (inBounds && !inBounds.value ().empty ())
3826- ? builder.getBoolArrayAttr (inBounds.value ())
3827- : builder.getBoolArrayAttr (
3826+ ? builder.getDenseBoolArrayAttr (inBounds.value ())
3827+ : builder.getDenseBoolArrayAttr (
38283828 SmallVector<bool >(vectorType.getRank (), false ));
38293829 build (builder, result, vectorType, source, indices, permutationMapAttr,
38303830 padding,
@@ -3876,7 +3876,7 @@ static LogicalResult
38763876verifyTransferOp (VectorTransferOpInterface op, ShapedType shapedType,
38773877 VectorType vectorType, VectorType maskType,
38783878 VectorType inferredMaskType, AffineMap permutationMap,
3879- ArrayAttr inBounds) {
3879+ ArrayRef< bool > inBounds) {
38803880 if (op->hasAttr (" masked" )) {
38813881 return op->emitOpError (" masked attribute has been removed. "
38823882 " Use in_bounds instead." );
@@ -3949,8 +3949,7 @@ verifyTransferOp(VectorTransferOpInterface op, ShapedType shapedType,
39493949 << AffineMapAttr::get (permutationMap)
39503950 << " vs inBounds of size: " << inBounds.size ();
39513951 for (unsigned int i = 0 , e = permutationMap.getNumResults (); i < e; ++i)
3952- if (isa<AffineConstantExpr>(permutationMap.getResult (i)) &&
3953- !llvm::cast<BoolAttr>(inBounds.getValue ()[i]).getValue ())
3952+ if (isa<AffineConstantExpr>(permutationMap.getResult (i)) && !inBounds[i])
39543953 return op->emitOpError (" requires broadcast dimensions to be in-bounds" );
39553954
39563955 return success ();
@@ -4031,7 +4030,7 @@ ParseResult TransferReadOp::parse(OpAsmParser &parser, OperationState &result) {
40314030 Attribute inBoundsAttr = result.attributes .get (inBoundsAttrName);
40324031 if (!inBoundsAttr) {
40334032 result.addAttribute (inBoundsAttrName,
4034- builder.getBoolArrayAttr (
4033+ builder.getDenseBoolArrayAttr (
40354034 SmallVector<bool >(permMap.getNumResults (), false )));
40364035 }
40374036 if (parser.resolveOperand (sourceInfo, shapedType, result.operands ) ||
@@ -4159,7 +4158,7 @@ static LogicalResult foldTransferInBoundsAttribute(TransferOp op) {
41594158 return failure ();
41604159 // OpBuilder is only used as a helper to build an I64ArrayAttr.
41614160 OpBuilder b (op.getContext ());
4162- op.setInBoundsAttr (b.getBoolArrayAttr (newInBounds));
4161+ op.setInBoundsAttr (b.getDenseBoolArrayAttr (newInBounds));
41634162 return success ();
41644163}
41654164
@@ -4329,7 +4328,7 @@ void TransferWriteOp::build(OpBuilder &builder, OperationState &result,
43294328 Value vector, Value dest, ValueRange indices,
43304329 AffineMapAttr permutationMapAttr,
43314330 /* optional*/ Value mask,
4332- /* optional*/ ArrayAttr inBoundsAttr) {
4331+ /* optional*/ DenseBoolArrayAttr inBoundsAttr) {
43334332 Type resultType = llvm::dyn_cast<RankedTensorType>(dest.getType ());
43344333 build (builder, result, resultType, vector, dest, indices, permutationMapAttr,
43354334 mask, inBoundsAttr);
@@ -4339,7 +4338,7 @@ void TransferWriteOp::build(OpBuilder &builder, OperationState &result,
43394338void TransferWriteOp::build (OpBuilder &builder, OperationState &result,
43404339 Value vector, Value dest, ValueRange indices,
43414340 AffineMapAttr permutationMapAttr,
4342- /* optional*/ ArrayAttr inBoundsAttr) {
4341+ /* optional*/ DenseBoolArrayAttr inBoundsAttr) {
43434342 build (builder, result, vector, dest, indices, permutationMapAttr,
43444343 /* mask=*/ Value (), inBoundsAttr);
43454344}
@@ -4353,8 +4352,8 @@ void TransferWriteOp::build(OpBuilder &builder, OperationState &result,
43534352 auto permutationMapAttr = AffineMapAttr::get (permutationMap);
43544353 auto inBoundsAttr =
43554354 (inBounds && !inBounds.value ().empty ())
4356- ? builder.getBoolArrayAttr (inBounds.value ())
4357- : builder.getBoolArrayAttr (SmallVector<bool >(
4355+ ? builder.getDenseBoolArrayAttr (inBounds.value ())
4356+ : builder.getDenseBoolArrayAttr (SmallVector<bool >(
43584357 llvm::cast<VectorType>(vector.getType ()).getRank (), false ));
43594358 build (builder, result, vector, dest, indices, permutationMapAttr,
43604359 /* mask=*/ Value (), inBoundsAttr);
@@ -4412,7 +4411,7 @@ ParseResult TransferWriteOp::parse(OpAsmParser &parser,
44124411 Attribute inBoundsAttr = result.attributes .get (inBoundsAttrName);
44134412 if (!inBoundsAttr) {
44144413 result.addAttribute (inBoundsAttrName,
4415- builder.getBoolArrayAttr (
4414+ builder.getDenseBoolArrayAttr (
44164415 SmallVector<bool >(permMap.getNumResults (), false )));
44174416 }
44184417 if (parser.resolveOperand (vectorInfo, vectorType, result.operands ) ||
@@ -4765,7 +4764,7 @@ struct SwapExtractSliceOfTransferWrite
47654764 auto newTransferWriteOp = rewriter.create <TransferWriteOp>(
47664765 transferOp.getLoc (), transferOp.getVector (), newExtractOp.getResult (),
47674766 transferOp.getIndices (), transferOp.getPermutationMapAttr (),
4768- rewriter.getBoolArrayAttr (newInBounds));
4767+ rewriter.getDenseBoolArrayAttr (newInBounds));
47694768 rewriter.modifyOpInPlace (insertOp, [&]() {
47704769 insertOp.getSourceMutable ().assign (newTransferWriteOp.getResult ());
47714770 });
0 commit comments